> ## Documentation Index
> Fetch the complete documentation index at: https://docs.webarchery.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Install Archery from GitHub

> Clone the Archery repository, install its Dart dependencies, run the test suite, and start the bundled example application.

Clone the Archery repository when you want the framework source, bundled example application, configuration, tests, and full Git history in one working directory.

<Info>
  This is the recommended path for exploring Archery, contributing to the framework, or building directly from the repository. It does not create a separate Dart console project.
</Info>

## Prerequisites

Install Git and Dart 3.10 or later, then confirm both commands are available:

```bash theme={null}
git --version
dart --version
```

<Card title="Install the Dart SDK" icon="dart-lang" href="https://dart.dev/get-dart">
  Follow the official Dart installation instructions if `dart` is unavailable or reports a version older than 3.10.
</Card>

## Clone the repository

Clone Archery from GitHub and enter the repository:

```bash theme={null}
git clone https://github.com/webarchery/archery.git
cd archery
```

The clone contains the framework source, default configuration, HTTP routes, views, database code, tests, and the bundled example entry point.

<Accordion title="Clone into a different directory name">
  Pass the destination name as the final argument:

  ```bash theme={null}
  git clone https://github.com/webarchery/archery.git my_archery_app
  cd my_archery_app
  ```
</Accordion>

## Install dependencies

Resolve the packages declared by the repository:

```bash theme={null}
dart pub get
```

## Run the Archery server

Start the example server from the repository root:

```bash theme={null}
dart run bin/server.dart
```

The default example listens on the port configured by `lib/src/config/server.json`, falling back to port `5502`.

Open the application in a browser or request it from another terminal:

```bash theme={null}
curl -i http://localhost:5501/
```

Stop the development server with `Ctrl+C`.

## Understand what was installed

The most useful starting locations are:

| Path                   | Purpose                                               |
| ---------------------- | ----------------------------------------------------- |
| `example/main.dart`    | Complete application boot and server example          |
| `lib/archery/`         | Framework implementation and public framework exports |
| `lib/src/config/`      | Default application configuration                     |
| `lib/src/http/routes/` | Bundled web and API routes                            |
| `lib/src/http/views/`  | Server-rendered templates                             |
| `lib/src/http/public/` | Public static assets                                  |
| `lib/src/database/`    | Models, migrations, drivers, pivots, and seeders      |
| `test/`                | Framework test suite                                  |

The repository includes more functionality than the minimal server used in the Quickstart.

<Warning>
  Do not commit passwords, database credentials, AWS keys, or production secrets into the repository's JSON configuration files. Inject secrets through the deployment environment.
</Warning>

<CardGroup cols={2}>
  <Card title="Run the quickstart" icon="rocket" href="/getting-started/quickstart">
    Reduce the bundled application to Archery's essential boot sequence.
  </Card>

  <Card title="Project structure" icon="folder-tree" href="/getting-started/project-structure">
    Learn where the repository's application components belong.
  </Card>
</CardGroup>
