selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Alarik logo

Self-host Alarik

High-performance S3-compatible object storage in Swift

BetaOpen SourceApache-2.0
Updatedlast month
LanguageSwift
Setup difficultyModerate
ThemeDark mode
Stars
574
Port
8080 (S3-compatible API endpoint)
Docker
ghcr.io/achtungsoftware/alarik
Install with Docker Compose
Alarik web console object browser in light modeAlarik web console object browser in dark modeAlarik cluster admin page showing node health and shard status

What is Alarik?

Alarik is an S3-compatible object storage server written in Swift and licensed under Apache 2.0. It implements the core S3 API including multipart uploads, bucket versioning, lifecycle rules, presigned URLs, bucket policies, and webhooks with AWS-compatible event payloads. A built-in Nuxt-based web console provides object browsing, drag-and-drop uploads, metadata editing, version management, and an admin dashboard. Authentication supports local username/password accounts and OIDC single sign-on with multiple identity providers. For horizontal scaling, Alarik uses rendezvous hashing and Reed-Solomon erasure coding (k data + m parity shards) with no external database — all metadata lives in its own storage layer. Deployment uses Docker Compose with images from ghcr.io, exposing the API on port 8080 and the console on port 3000. The project is in beta (latest 1.0.0-beta-16) and actively developed by AchtungSoftware.

Should you self-host Alarik?

Alarik scores 48/100 on selfhost.directory (how scoring works) and ranks #8 of 15 in File Storage. It has 574 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Apache-2.0-licensed and written mostly in Swift.

Its closest alternative on selfhost.directory is SeaweedFS (81/100, 35 793 stars). It scores higher overall, so compare the two before you pick. See Alarik vs SeaweedFS side by side.

Features

  • Admin Dashboard
  • Bucket policies
  • Bucket Replication
  • Bucket webhooks
  • Horizontal scaling with erasure coding
  • Lifecycle rules
  • Object tagging
  • Object versioning
  • OIDC Single Sign-On
  • Presigned URLs
  • Range reads
  • S3 access keys
  • S3-compatible API
  • Shared links
  • Web Console

Alarik README

How to install Alarik

Install Alarik with Docker Compose

Environment variables
API_BASE_URL, CONSOLE_BASE_URL, ALARIK_REGION, ALARIK_FSYNC, JWT, ADMIN_USERNAME, ADMIN_PASSWORD, DEFAULT_ACCESS_KEY, DEFAULT_SECRET_KEY, DEFAULT_BUCKETS, ALLOW_ACCOUNT_CREATION, NUXT_PUBLIC_API_BASE_URL, NUXT_PUBLIC_CONSOLE_BASE_URL, NUXT_PUBLIC_ALLOW_ACCOUNT_CREATION

services: alarik: image: ghcr.io/achtungsoftware/alarik:latest restart: unless-stopped ports: - "8080:8080" environment: - API_BASE_URL=http://localhost:8080 - CONSOLE_BASE_URL=http://localhost:3000 - ADMIN_USERNAME=alarik - ADMIN_PASSWORD=alarik - JWT=YOUR_SECURE_JWT_KEY - ALLOW_ACCOUNT_CREATION=false volumes: - alarik-storage:/app/Storage

console: image: ghcr.io/achtungsoftware/alarik-console:latest restart: unless-stopped ports: - "3000:3000" environment: - NUXT_PUBLIC_API_BASE_URL=http://localhost:8080 - NUXT_PUBLIC_CONSOLE_BASE_URL=http://localhost:3000 - NUXT_PUBLIC_ALLOW_ACCOUNT_CREATION=false depends_on: - alarik

volumes: alarik-storage:

docker compose up -d

Prebuilt images from GitHub Container Registry. Requires Docker 20.10+ and Docker Compose.

How to configure Alarik

  • ADMIN_PASSWORDalarikPassword for the default admin account.

    Password for the default admin account.

  • ADMIN_USERNAMEalarikUsername for the default admin account.

    Username for the default admin account.

  • ALARIK_FSYNCtrueWhether uploads are flushed to stable storage before being acknowledged. Default on for durability.

    Whether uploads are flushed to stable storage before being acknowledged. Default on for durability.

    values: true/false

  • ALARIK_REGIONus-east-1The AWS region this deployment identifies as. S3 clients must sign requests for this exact region.

    The AWS region this deployment identifies as. S3 clients must sign requests for this exact region.

  • ALLOW_ACCOUNT_CREATIONfalseControls whether new accounts can be self-registered via console or SSO auto-provisioning.

    Controls whether new accounts can be self-registered via console or SSO auto-provisioning.

    values: true/false

  • API_BASE_URLhttp://localhost:8080The base URL where the Alarik API is accessible. Used for generating correct URLs in responses.

    The base URL where the Alarik API is accessible. Used for generating correct URLs in responses.

  • CLUSTER_EC_DATA_SHARDS4Number of data shards (k) for Reed-Solomon erasure coding in cluster mode.

    Number of data shards (k) for Reed-Solomon erasure coding in cluster mode.

    values: >=2

  • CLUSTER_EC_PARITY_SHARDS2Number of parity shards (m) for Reed-Solomon erasure coding in cluster mode.

    Number of parity shards (m) for Reed-Solomon erasure coding in cluster mode.

    values: >=1

  • CLUSTER_EC_SCRUB_INTERVAL_HOURS168How often each node runs the erasure coding scrub (background bit-rot check).

    How often each node runs the erasure coding scrub (background bit-rot check).

  • CLUSTER_MIN_FREE_PERCENTPercentage of free disk space below which a node is considered near-full.

    Percentage of free disk space below which a node is considered near-full.

  • CLUSTER_NODE_ADDRESSThe address this node uses for inter-node communication in cluster mode.

    The address this node uses for inter-node communication in cluster mode.

  • CLUSTER_SECRETShared secret used to authenticate inter-node traffic in cluster mode.

    Shared secret used to authenticate inter-node traffic in cluster mode.

  • CLUSTER_SEED_NODESComma-separated list of seed node addresses for cluster bootstrapping.

    Comma-separated list of seed node addresses for cluster bootstrapping.

  • CONSOLE_BASE_URLhttp://localhost:3000The base URL where the web console is accessible.

    The base URL where the web console is accessible.

  • DEFAULT_ACCESS_KEYDefault S3 access key ID for the admin account.

    Default S3 access key ID for the admin account.

  • DEFAULT_BUCKETSComma-separated list of buckets to create automatically at startup.

    Comma-separated list of buckets to create automatically at startup.

  • DEFAULT_SECRET_KEYDefault S3 secret access key for the admin account.

    Default S3 secret access key for the admin account.

  • JWTThe secret used to sign and verify console session tokens. Required in production.

    The secret used to sign and verify console session tokens. Required in production.

  • NUXT_PUBLIC_ALLOW_ACCOUNT_CREATIONfalseControls whether the registration form is shown in the console UI.

    Controls whether the registration form is shown in the console UI.

    values: true/false

  • NUXT_PUBLIC_API_BASE_URLhttp://localhost:8080The base URL of the Alarik API that the console connects to.

    The base URL of the Alarik API that the console connects to.

  • NUXT_PUBLIC_CONSOLE_BASE_URLhttp://localhost:3000The base URL where the console is accessible.

    The base URL where the console is accessible.

More in File Storage

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…