services:
vectrum:
build:
context: .
dockerfile: apps/web/Dockerfile
image: vectrum
restart: unless-stopped
ports:
- "3000:3000" # web UI and git over HTTPS (put a TLS reverse proxy in front)
- "2222:2222" # git over SSH; clone URLs show SSH_PORT (2222), so keep both sides the same
environment:
# Close registration: the sign-up page and button go away, existing users can still sign in.
# Create accounts with: docker compose exec -it vectrum node scripts/create-user.mjs <username> <email>
SIGNUPS_DISABLED: "0"
# The address users reach Vectrum at, for clone URLs; https also makes session cookies Secure.
# PUBLIC_URL: https://vectrum.example.com
# Host name shown in SSH clone URLs (defaults to the host the web UI was reached on).
# SSH_HOST: vectrum.example.com
# Set to 1 to turn off the built-in SSH server (and remove the 2222 port above).
# SSH_DISABLED: "1"
# Send email (address confirmation, password resets, invitations) through this SMTP server.
# SMTP_HOST: smtp.example.com
# SMTP_PORT: "587" # 465 uses TLS from the start (or set SMTP_SECURE: "1")
# SMTP_USER: vectrum@example.com
# SMTP_PASSWORD: change-me
# MAIL_FROM: Vectrum <vectrum@example.com>
volumes:
- vectrum-data:/data # repositories, the PocketBase database and the SSH host key
volumes:
vectrum-data: