Skip to main content

AliasVault [self hosted password manager with built in Mail server]

https://www.aliasvault.net/

icon-trimmed.webp AliasVault

Self Hosted Password Manager with a WebUI (https://vault.pknw1.co.uk) and WebPlugins (https://vault.pknw1.co.uk/api)

fc5d1d3b4cee   aliasvault-reverse-proxy    Up 5 minutes             ghcr.io/lanedirt/aliasvault-reverse-proxy:latest
fab3e0d8266d   aliasvault-task-runner      Up 5 minutes             ghcr.io/lanedirt/aliasvault-task-runner:latest
d45c2279afdd   aliasvault-api              Up 6 minutes             ghcr.io/lanedirt/aliasvault-api:latest
18e42a61d967   aliasvault-admin            Up 6 minutes             ghcr.io/lanedirt/aliasvault-admin:latest
97f0ae6545f5   aliasvault-smtp             Up 5 minutes             ghcr.io/lanedirt/aliasvault-smtp:latest
73c793840a09   aliasvault-postgres         Up 6 minutes (healthy)   ghcr.io/lanedirt/aliasvault-postgres:latest
80deea0a719a   aliasvault-client           Up 6 minutes             ghcr.io/lanedirt/aliasvault-client:latest
dev-add-app-user.sh aliasvault
> aliasvault
> na
> na
/home/aliasvault/app/docker-compose.yml
services:
    postgres:
        image: ghcr.io/lanedirt/aliasvault-postgres:latest
        container_name: aliasvault-postgres
        hostname: aliasvault-postgres
        volumes:
            - /etc/svc/config/aliasvault/database/postgres:/var/lib/postgresql/data:rw
        env_file:
            - .env
        restart: always
        networks:
          - proxy
          - admin
        healthcheck:
            test: ["CMD-SHELL", "pg_isready -U aliasvault"]
            interval: 5s
            timeout: 5s
            retries: 5
            start_period: 10s

    client:
        image: ghcr.io/lanedirt/aliasvault-client:latest
        container_name: aliasvault-client
        hostname: aliasvault-client
        volumes:
            - /etc/svc/config/aliasvault/logs/msbuild:/apps/server/msbuild-logs:rw
        expose:
            - "3000"
        restart: always
        networks:
          - proxy
          - admin
        env_file:
            - .env

    api:
        image: ghcr.io/lanedirt/aliasvault-api:latest
        container_name: aliasvault-api
        hostname: aliasvault-api
        expose:
            - "3001"
        volumes:
            - /etc/svc/config/aliasvault/database:/database:rw
            - /etc/svc/config/aliasvault/certificates/app:/certificates/app:rw
            - /etc/svc/config/aliasvault/logs:/logs:rw
        restart: always
        networks:
          - proxy
          - admin
        env_file:
            - .env
        depends_on:
            postgres:
                condition: service_healthy
        environment:
            ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}"

    admin:
        image: ghcr.io/lanedirt/aliasvault-admin:latest
        container_name: aliasvault-admin
        hostname: aliasvault-admin
        expose:
            - "3002"
        volumes:
            - /etc/svc/config/aliasvault/database:/database:rw
            - /etc/svc/config/aliasvault/certificates/app:/certificates/app:rw
            - /etc/svc/config/aliasvault/logs:/logs:rw
        restart: always
        networks:
          - proxy
          - admin
        env_file:
            - .env
        depends_on:
            postgres:
                condition: service_healthy
        environment:
            ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}"

    reverse-proxy:
        image: ghcr.io/lanedirt/aliasvault-reverse-proxy:latest
        container_name: aliasvault-reverse-proxy
        hostname: aliasvault-reverse-proxy
        ports:
            - "${HTTP_PORT:-80}:80"
            - "${HTTPS_PORT:-443}:443"
        volumes:
            - /etc/svc/config/aliasvault/certificates/ssl:/etc/nginx/ssl:rw
            - /etc/svc/config/aliasvault/certificates/letsencrypt:/etc/nginx/ssl-letsencrypt:rw
            - /etc/svc/config/aliasvault/certificates/letsencrypt/www:/var/www/certbot:rw
        depends_on:
            - admin
            - client
            - api
            - smtp
        restart: always
        networks:
          - proxy
          - admin
        environment:
            - VIRTUAL_HOST=vault.pknw1.co.uk,vault.admin.pknw1.co.uk
            - VIRTUAL_PORT=443
            - VIRTUAL_PROTO=https
        env_file:
            - .env

    smtp:
        image: ghcr.io/lanedirt/aliasvault-smtp:latest
        container_name: aliasvault-smtp
        hostname: aliasvault-smtp
        ports:
            - "${SMTP_PORT:-25}:25"
            - "${SMTP_TLS_PORT:-587}:587"
        volumes:
            - /etc/svc/config/aliasvault/database:/database:rw
            - /etc/svc/config/aliasvault/logs:/logs:rw
        restart: always
        networks:
          - proxy
          - admin
        env_file:
            - .env
        depends_on:
            postgres:
                condition: service_healthy
        environment:
            ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}"

    task-runner:
        image: ghcr.io/lanedirt/aliasvault-task-runner:latest
        container_name: aliasvault-task-runner
        hostname: aliasvault-task-runner
        volumes:
            - /etc/svc/config/aliasvault/database:/database:rw
            - /etc/svc/config/aliasvault/logs:/logs:rw
        restart: always
        networks:
          - proxy
          - admin
        env_file:
            - .env
        depends_on:
            postgres:
                condition: service_healthy
        environment:
            ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}"

networks:
  proxy:
    external: true
  admin:
    external: true
backup: borg-docker-auto.sh aliasvault
restore: git clone git@github.com:pknw1-config/borg-aliasvault.git /etc/svc/config/aliasvault