Deploy Astrum Repository

Self-hosted artifact repository for Docker, npm, Maven and Cargo

Deploy Astrum Repository

/var/lib/postgresql/data

Deploy and Host self hosted Astrum Repository on Railway

This template deploys Astrum Repository, an open-source Rust artifact repository for Docker, npm, Maven and Cargo, as two services: the Astrum app and a Postgres 16 database.

About Hosting Astrum Repository open-source software on Railway (self hosted Astrum Repository template)

Astrum Repository is an MIT-licensed artifact repository written in Rust that hosts, proxies and groups packages for Docker and OCI, npm, Maven, Cargo, PyPI and other formats. Users, roles, tokens, cleanup tasks and an audit log are part of the same server. Keep one replica of each service because of the volumes.

Why Deploy Astrum Repository, the self-hosted artifact repository on Railway

Self-hosting Astrum Repository on Railway keeps your Docker, npm and Maven artifacts under your own control. This is independent community packaging of GlobalArtInc/astrum-repository. It is not affiliated with or endorsed by Sonatype, JFrog, Nexus or Artifactory.

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Astrum Repository on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

Railway vs Other Hosting Providers and VPS for Astrum Repository self hosting

Choosing a host depends on how much of the server and database you want to manage.

ProviderWhat You Get with RailwayWhat You Get with the Other Provider
DigitalOceanThe Astrum app and Postgres 16 deploy as two linked services, with a volume for artifacts.A Droplet you control fully, but you install and maintain Astrum and its database yourself.

Pick Railway for a working repository quickly, and a VPS when you need full control of the host.

Common Use Cases for hosted Astrum Repository

  • Private Docker and OCI registry for a team: Create a hosted Docker repository for your own images, then group it with a proxy of Docker Hub so one address serves both, with your images winning over public ones of the same name.
  • Caching npm and PyPI for CI runners: Set up proxy repositories for the public registries and group them with your hosted packages, so builds pull from one place and your internal packages stay private.
  • Java and Rust library distribution: Publish Maven artifacts to release and snapshot repositories and host Cargo crates in the same server, controlling who can read or deploy with roles and access tokens.

Dependencies for Astrum Repository Docker hosted on Railway

This template runs Astrum Repository as two services: the application and a PostgreSQL 16 database.

Deployment Dependencies for Managed Astrum Repository Service (two containers: the Astrum app and Postgres 16)

The astrum service listens on port 8080 with a public domain and mounts a volume at /astrum-data, which holds the default blob store, etc/secrets.key and logs.

The template asks for no inputs. ASTRUM_ADMIN_PASSWORD on astrum is generated per deploy and applied on first boot only, so sign in as admin with it and change the password in the UI later. ASTRUM_DATABASE_URL on astrum is built from the astrum-db password and private domain. POSTGRES_PASSWORD on astrum-db is generated per deploy.

Implementation Details for Astrum Repository (unmodified Astrum Repository image at 20261111211020-bea3c1a plus a start script that sets the admin password, with a Postgres 16 companion)

The application runs ghcr.io/onepush-dev/astrum-repository:20261111211020-bea3c1a, the unmodified upstream image with binary and web UI unchanged, plus curl and app/railway-start.sh.

How does Astrum Repository compare against other tools

Astrum Repository vs Nexus (Nexus Alternative)

  • Licensing: Astrum Repository is MIT-licensed and free to self-host, so you pay only for infrastructure. Nexus has commercial editions with their own terms.
  • Implementation: Astrum Repository is a single Rust server with a built-in web interface, backed by PostgreSQL. Nexus is a mature Java application with a large plugin ecosystem.
  • Formats: Astrum Repository covers Docker and OCI, npm, Maven, Cargo, PyPI and Go modules in one server. Check the format list against your toolchain.

Astrum Repository vs Artifactory (Artifactory Alternative)

  • Licensing: Astrum Repository is free MIT open source. Artifactory is a commercial JFrog product with paid tiers and vendor support contracts.
  • Footprint: Astrum Repository runs as one server plus PostgreSQL. Artifactory is a broader platform suited to large organisations with dedicated platform teams.
  • Maturity: Artifactory has a long record in large enterprises. Astrum Repository is newer, so test it against your own workloads first.

Astrum Repository vs Reposilite (Reposilite Alternative)

  • Scope: Reposilite is a smaller Java repository manager focused mainly on Maven. Astrum Repository covers many more formats in one server.
  • Team features: Reposilite is lightweight for Maven-centric teams. Astrum Repository adds users, roles, tokens, cleanup tasks and an audit log for shared servers.
  • Railway template: Reposilite already has a Railway template. Astrum Repository is independent community packaging of the upstream project. It is not affiliated with Reposilite, and it is not a Nexus or Artifactory product.

Astrum Repository with Docker vs Railway (Docker Hosting Alternative)

  • Control: Running Astrum Repository in Docker on your own host gives full control over volumes, networking and upgrade timing. Railway handles hosting, domains and volumes for you.
  • Persistence: On Railway the blob store and Postgres data each sit on a volume with one replica each. With plain Docker you manage the same volumes and backups yourself.
  • Upgrades: With Docker you pull a new image tag when you choose. On Railway the template pins the image tag, so you move to a newer version by updating the template.

How to use Astrum Repository on Railway?

  1. Open the public domain of the astrum service and sign in as admin with the password from ASTRUM_ADMIN_PASSWORD in the astrum Variables tab. The password is applied on first boot only, so change it later in the UI.
  2. Create your repositories in the UI, such as a Docker hosted repository or an npm proxy.
  3. Point clients at the HTTPS domain using the path /repository/ followed by the repository name. Docker clients use the same domain on port 443.
  4. Anonymous access is off by default, so clients need credentials until you enable it in the UI.
  5. Back up /astrum-data together with the database. The file etc/secrets.key in that volume seals stored secrets, so keep both halves.
  6. The default blob store is the volume. You can configure S3 blob stores in the UI if you expect large artifact volumes.
  7. Check health with the status endpoint:
/service/rest/v1/status

How to self host Astrum Repository on other VPS Services (Astrum Repository self hosting guide)

Clone the Repository

Clone the upstream source and pin a known revision.

git clone https://github.com/GlobalArtInc/astrum-repository.git
cd astrum-repository
git checkout bea3c1a

Install Dependencies

You need a container runtime and PostgreSQL 16 or newer.

docker --version
psql --version

Configure Environment Variables

Create a data directory owned by uid 200, then set the database address.

mkdir -p /srv/astrum/data
chown 200:200 /srv/astrum/data
export ASTRUM_DATABASE_URL=postgres://astrum:your-password@your-db-host:5432/astrum

Start the Astrum Repository Application

Run the upstream image with the data directory mounted, then read the first admin password from admin.password unless you replace it.

docker run -d --name astrum -p 8081:8081 \
  -v /srv/astrum/data:/astrum-data \
  -e ASTRUM_DATABASE_URL="$ASTRUM_DATABASE_URL" \
  docker.io/globalartltd/astrum-repository:20261111211020-bea3c1a
docker exec astrum cat /astrum-data/admin.password

Railway handles the runtime, the Postgres companion, HTTPS and persistent volumes for you.

Pricing and License of Astrum Repository (Astrum Repository pricing)

Astrum Repository is released under the MIT License, so you can self-host it for free and use, modify and redistribute it under those terms.

Astrum Repository hosted vs self hosted comparison (Pricing, features, costs, and more)

Astrum Repository is free MIT software, and no hosted plan is described upstream.

Monthly cost of self hosting Astrum Repository on Railway

Railway bills by usage, so the cost depends on RAM, CPU, volume size and the number of services.

System Requirements for Hosting Astrum Repository on a VPS

A VPS needs enough RAM, CPU and disk for the server, a PostgreSQL 16 or newer database, and a persistent data directory.

Frequently Asked Questions (FAQs)

How do I sign in to my Astrum Repository instance?

Sign in at your public domain with the username admin and the password stored in ASTRUM_ADMIN_PASSWORD, which you can read in the Variables tab of the astrum service.

Does changing ASTRUM_ADMIN_PASSWORD later reset the login?

No. The variable is applied on first boot only. Change the password in the UI afterwards.

Is Astrum Repository a Nexus or Artifactory product?

No. This packaging is not affiliated with or endorsed by Sonatype, JFrog, Nexus or Artifactory.

What should I back up?

Back up the /astrum-data volume together with the Postgres volume, because the data directory holds etc/secrets.key, which seals the secrets stored in the database.

Can I use S3 for blob storage?

Yes. Configure a blob store in the UI. This template defaults to the volume.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
51
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
52