Install on a server

Run locally (to test)

Want to kick the tires before committing to a server? You can run the whole platform on your own computer. It's perfect for evaluating Astrodock or developing apps — just remember it's only reachable from your machine, so it's not a real, shareable install.

This is for trying it, not for real use

A local install has no public address and no real HTTPS. When you're ready to put apps online, follow DigitalOcean or your own server / any VPS.

  1. Install Docker Desktop

    Get Docker Desktop for Mac or Windows (on Linux, Docker Engine is fine) and start it. Confirm it works:

    docker compose version
  2. Get Astrodock

    Clone the repository (locally you probably want the source anyway):

    git clone https://github.com/astrodock/astrodock.git
    cd astrodock
  3. Configure for local — one command

    This generates a local .env (localhost, plain HTTP) with every secret filled in. It asks nothing:

    ./scripts/setup.sh --local
  4. Start it

    docker compose up -d

    This pulls the prebuilt images. To build from your working copy instead — which is what you want if you're changing Astrodock itself:

    docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build

    (Tip: ./scripts/setup.sh --local --up configures and starts in one go.)

  5. Create your account and open the dashboard

    Go to http://admin.localhost. On a fresh install you'll get the setup wizard, which asks for a one-time token printed in the log:

    docker compose logs api | grep -A2 'first-run setup'

    Paste it, pick an email and password, and you're in. Because --local already set the domain, the wizard skips straight past the domain step. Your apps will live at http://<subdomain>.localhost.

    Why .localhost just works

    Browsers automatically resolve any *.localhost name to your own computer, so admin.localhost and notes.localhost work with no DNS or hosts-file changes.

Stopping & cleaning up

docker compose down        # stop the stack (keeps your data)
docker compose down -v     # stop AND delete all data (fresh start)

What's next