Self-Hosting Onelist
Deploy Onelist on your own infrastructure for maximum control and privacy.
Infrastructure Required
Self-hosting requires setting up PostgreSQL, object storage (S3-compatible), and basic DevOps knowledge. We provide Docker images and documentation, but you're responsible for maintenance.
Requirements
Infrastructure
- PostgreSQL 14+ - Primary database with pgvector extension
- S3-compatible storage - AWS S3, MinIO, Cloudflare R2, etc.
- Docker or Kubernetes - For running Onelist Core
- Reverse proxy - nginx, Caddy, or similar (for HTTPS)
Minimum Resources
- 2 CPU cores
- 4 GB RAM
- 20 GB storage (plus S3 for assets)
Quick Start with Docker Compose
The fastest way to get started. This sets up PostgreSQL, MinIO (S3), and Onelist.
# Clone the repo
git clone https://github.com/onelist/onelist-core.git
cd onelist-core
# Copy and edit environment variables
cp .env.example .env
nano .env # Set SECRET_KEY_BASE, etc.
# Start all services
docker-compose up -d
Onelist will be available at http://localhost:4000.
Environment Variables
| Variable | Description |
|---|---|
| DATABASE_URL | PostgreSQL connection string |
| SECRET_KEY_BASE | 64+ character secret (use mix phx.gen.secret) |
| S3_BUCKET | Bucket name for asset storage |
| S3_ENDPOINT | S3 endpoint URL (for non-AWS) |
| AWS_ACCESS_KEY_ID | S3 access key |
| AWS_SECRET_ACCESS_KEY | S3 secret key |
| PHX_HOST | Your domain (e.g., onelist.yourcompany.com) |
PostgreSQL Setup
Onelist requires PostgreSQL with the pgvector extension for semantic search.
# Install pgvector extension
CREATE EXTENSION IF NOT EXISTS vector;
# Run migrations
docker exec onelist mix ecto.migrate
Kubernetes Deployment
For production deployments, we provide Helm charts.
helm repo add onelist https://charts.onelist.my
helm install onelist onelist/onelist-core \
--set postgresql.enabled=true \
--set minio.enabled=true \
--set ingress.enabled=true
See values.yaml for all configuration options.
Need Help?
- GitHub Discussions - Community support
- Community Forum - Ask questions, share tips
- support@onelist.my - Priority support (paid plans)