agamspace/agam-space

By agamspace

Updated 10 days ago

Private, fully end-to-end encrypted (E2EE), self-hosted file storage solution

Image
Security
1

4.0K

agamspace/agam-space repository overview

Agam Space

Self-hosted, zero-knowledge end-to-end encrypted file storage. Files are encrypted in your browser before upload. The server stores only encrypted blobs it cannot decrypt.

True privacy: Even the server admin cannot access your files. Built for sharing storage with family and friends while maintaining cryptographic privacy.

Key Features

Zero-Knowledge Encryption:

  • Master password never leaves your device
  • All encryption happens in your browser before upload
  • Server stores only encrypted blobs it cannot decrypt
  • File names, folder names, and metadata all encrypted
  • Even the server admin cannot access your data

Authentication:

  • Email/password login (separate from master password)
  • Optional SSO (Authelia, Authentik, Keycloak, Google, GitHub)
  • WebAuthn biometric unlock on trusted devices (Touch ID, Face ID, Windows Hello)

File Management:

  • Upload via drag-and-drop or file picker
  • Nested folder organization
  • File previews (PDF, images, text, video/audio)
  • 30-day trash bin with restore

Deployment:

  • All-in-one Docker image (backend + web app)
  • Multi-user support with per-user storage quotas
  • Multi-arch support (amd64 and arm64)

Quick Start

Docker Compose (Recommended):

services:
  postgres:
    image: postgres:15-alpine
    environment:
      POSTGRES_PASSWORD: changeme
      POSTGRES_DB: agam_space
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    restart: unless-stopped

  agam:
    image: agamspace/agam-space:latest
    # Run as your user for easier file management
    # Find your UID/GID with: id -u && id -g
    user: "1000:1000"
    ports:
      - "3331:3331"
    environment:
      DATABASE_HOST: postgres
      DATABASE_PASSWORD: changeme
      DATABASE_NAME: agam_space
      ALLOW_NEW_SIGNUP: "true"
    volumes:
      - ./data:/data
    depends_on:
      - postgres
    restart: unless-stopped

Save as docker-compose.yml and run:

docker compose up -d

Access at: http://localhost:3331

Important: The user: "1000:1000" field runs the container as your user for easier file management. Update it to match your UID/GID (find with id -u && id -g). Files in ./data will be owned by this user.

Environment Variables

Required
VariableDescription
DATABASE_HOSTPostgreSQL hostname
DATABASE_PASSWORDPostgreSQL password
Optional
VariableDefaultDescription
DATABASE_PORT5432PostgreSQL port
DATABASE_NAMEagam_spaceDatabase name
HTTP_PORT3331Server port
ALLOW_NEW_SIGNUPfalseAllow new registrations
DOMAINhttp://localhost:3331Application domain
SSO_ISSUER-SSO provider URL
SSO_CLIENT_ID-SSO client ID
SSO_CLIENT_SECRET-SSO client secret
SSO_REDIRECT_URI-SSO callback URL
SSO_AUTO_CREATE_USERfalseAuto-create users via SSO

Full configuration reference: https://docs.agamspace.app/configuration/

Docker Tags

TagDescription
latestLatest stable release (Alpine-based)
latest-hardenedLatest stable release (Hardened variant)
v0.2.xSpecific version (Alpine-based)
v0.2.x-hardenedSpecific version (Hardened variant)
devDevelopment builds from main branch
dev-hardenedDevelopment builds (Hardened variant)

Multi-arch support: All images support both amd64 and arm64 architectures.

Hardened Images

Hardened images use Docker Hub Images (DHI) with minimal attack surface and no shell access. Use -hardened tags for maximum security.

Key Differences:

AspectNormal (latest)Hardened (latest-hardened)
Base imagenode:22-alpinedhi.io/node:22-alpine3.23
Shell access✅ Available❌ No shell (maximum security)
Debugging✅ Easy⚠️ Limited (no interactive access)
Security✅ Good✅✅ Maximum

Which to choose?

  • Normal image: Recommended for most users - easier to debug
  • Hardened image: Use in production when maximum security is required

Alternative Registry

Also available on GitHub Container Registry:

docker pull ghcr.io/agam-space/agam-space:latest

Production Setup

For production deployments with HTTPS, reverse proxy, and security best practices:

Installation Guide: https://docs.agamspace.app/installation/docker-compose

⚠️ Beta Warning

This is beta software (v0.2.x). Core features work, but expect bugs and changes.

Do not use as your only backup. Keep copies of important files elsewhere until the project reaches v1.0.

Documentation

Full documentation: https://docs.agamspace.app

Quick links:

About the Name

Agam (அகம்) comes from Tamil language and refers to the inner, personal world, distinct from what is public. It reflects our commitment to keeping your data private and encrypted.

Tag summary

Content type

Image

Digest

sha256:2a2d9c3db

Size

61.2 MB

Last updated

10 days ago

docker pull agamspace/agam-space:dev-hardened