Deploy Alarik

Alarik is a high-performance, S3-compatible object storage.

Deploy Alarik

/app/Storage

Deploy on Railway

Deploy and Host Alarik on Railway

Alarik by Achtung Software is an open-source management platform consisting of a core API backend and a modern Nuxt-based web administration console. This Railway template deploys both the Alarik API server (alarik) and the Alarik Console web dashboard (console) with persistent file storage and automated secret configuration.


About Hosting Alarik

Hosting Alarik on Railway runs two connected container services:

  • Alarik API (alarik): Core backend service using ghcr.io/achtungsoftware/alarik:latest. It handles API requests, user authentication, JWT token signing, and data persistence. It mounts a persistent volume at /app/Storage and listens on port 8080.
  • Alarik Console (console): Web management frontend using ghcr.io/achtungsoftware/alarik-console:latest. It provides the Nuxt dashboard UI, listening on port 3000 and communicating with the API service over HTTPS.

Both services are assigned Railway public domains so users can access the administrative UI and API endpoints securely.


Common Use Cases
  • Self-hosted administrative platform: Manage Alarik services and accounts on infrastructure you control.
  • Decoupled API & Console architecture: Manage frontend and backend services within a single Railway project.
  • Secure multi-tenant / multi-user management: Configurable admin credentials and account creation controls.
  • Persistent file & state storage: Retain application files, configurations, and database state across container redeployments.

Dependencies for Alarik Hosting
  • Alarik API image: ghcr.io/achtungsoftware/alarik:latest
  • Alarik Console image: ghcr.io/achtungsoftware/alarik-console:latest
  • One persistent volume mounted at /app/Storage on the alarik backend service
  • Railway public domains for both alarik and console services
  • Auto-generated secrets: Admin password (ADMIN_PASSWORD) and JWT signing key (JWT)

Upstream: GitHub

Implementation Details
ServiceImageRoleWeb PortVolume Mount
alarikghcr.io/achtungsoftware/alarik:latestCore Backend API & Storage8080/app/Storage
consoleghcr.io/achtungsoftware/alarik-console:latestNuxt Web Admin Dashboard3000None

Topology
ServiceRoleVolumePublicNotes
alarikCore API + Data Store/app/StorageYes (Port 8080)Runs with RAILWAY_RUN_UID=0 for volume write permissions
consoleFrontend Web DashboardNoneYes (Port 3000)Nuxt UI pointing to alarik API domain
Volumes (drives) — what to mount
ServiceMount pathWhat is stored
alarik/app/StorageApplication data, persistent storage, logs, and database files

Warning: Do not remove or detach the /app/Storage volume on the alarik service — application data and state will be lost on subsequent deploys.


Quick Start
  1. Click the Deploy on Railway button above.
  2. Sign in (or create a free Railway account) and click Deploy.
  3. Wait 1–2 minutes for both the alarik API and console web services to provision.
  4. Open the alarik service → Variables to retrieve your auto-generated ADMIN_PASSWORD (default username is alarik).
  5. Open the console service → Settings → Networking and click the generated public domain URL.
  6. Log in to the Alarik Console using your administrative credentials.

Configuration
Core Backend Variables (alarik)
VariableDefault / SourceDescription / Notes
API_BASE_URLhttps://${{RAILWAY_PUBLIC_DOMAIN}}Public URL for the Alarik API
CONSOLE_BASE_URLhttps://${{console.RAILWAY_PUBLIC_DOMAIN}}Public URL for the Alarik Console frontend
ADMIN_USERNAMEalarikDefault administrative username
ADMIN_PASSWORDAuto-generated secret (16 chars)Admin account password
JWTAuto-generated secret (64 chars)Secret key used for signing JWT tokens
ALLOW_ACCOUNT_CREATIONfalseDisable or enable public user registration
PORT8080Internal port the API server listens on
RAILWAY_RUN_UID0Runs process as root to ensure write access to /app/Storage
Web Console Variables (console)
VariableDefault / SourceDescription / Notes
NUXT_PUBLIC_API_BASE_URLhttps://${{alarik.RAILWAY_PUBLIC_DOMAIN}}Points Nuxt frontend to the alarik API domain
NUXT_PUBLIC_CONSOLE_BASE_URLhttps://${{alarik.RAILWAY_PUBLIC_DOMAIN}}Console public domain reference
NUXT_PUBLIC_ALLOW_ACCOUNT_CREATIONfalseControls frontend registration UI behavior
PORT3000Internal port the Nuxt server listens on
Custom Domain
  1. Open the target service (console or alarik) → Settings → Networking → Custom Domain.
  2. Add your custom domain and follow Railway’s DNS configuration instructions.
  3. Update CONSOLE_BASE_URL or API_BASE_URL environment variables if custom domains are used.
  4. Railway provisions TLS automatically.

Updating Alarik
  1. For both alarik and console services, go to Settings → Source.
  2. Update the image tag (e.g., ghcr.io/achtungsoftware/alarik:latest or a specific release tag).
  3. Click Redeploy.

All application data inside /app/Storage will remain intact across updates.


Traps

Ways this still fails or surprises people:

  • Volume Permissions (RAILWAY_RUN_UID) — The alarik container requires RAILWAY_RUN_UID=0 so it can write data into the mounted /app/Storage volume. Removing this variable may cause permission denied errors on startup.
  • Missing /app/Storage Volume — If the /app/Storage volume is deleted or detached, all persistent application state and stored files will be lost during a redeploy.
  • Domain Mismatch between Console and API — The console service depends on NUXT_PUBLIC_API_BASE_URL pointing to the public URL of the alarik service. If custom domains are added without updating environment variables, CORS or connection errors may occur.
  • Auto-generated Secrets lost on recreation — Make sure to copy down ADMIN_PASSWORD from the alarik service variables tab after the initial deployment.

Why Deploy Alarik on Railway?

Railway provides a complete platform to host multi-container architecture stacks without complex server configuration. Hosting Alarik on Railway gives you private service networking, persistent volume mounts, auto-generated security tokens, and automatic HTTPS certificates out of the box.



Template Content

More templates in this category

View Template
Garage S3 Storage
Ultra-light S3 server: fast, open-source, plug-and-play.

PROJETOS
8
View Template
Redis
Self Host Latest Redis with Railway

8
View Template
EasyImg
Simple self-hostable Nuxt.js personal image hosting system.

Muhammad Bilal
0