Secure your life's moments with a photo storage solution built on privacy. This service provides a safe home for your photos and videos, protected with end-to-end encryption from the moment they leave your device. Unlike mainstream services, your data is never used for ads or training, ensuring your memories remain yours alone. It's a fully open-source and independently audited platform, offering complete transparency and peace of mind.
Access your encrypted library seamlessly across all your devices, including Android, iOS, web, and desktop. The experience is rich with features designed to protect your privacy without sacrificing functionality:
services:
museum:
image: ghcr.io/ente-io/server:latest
container_name: ente-museum
restart: unless-stopped
ports:
- "8080:8080"
environment:
- ENTE_DB_HOST=postgres
- ENTE_DB_PORT=5432
- ENTE_DB_USER=${POSTGRES_USER}
- ENTE_DB_PASSWORD=${POSTGRES_PASSWORD}
- ENTE_DB_NAME=${POSTGRES_DB}
- ENTE_S3_ENDPOINT=http://minio:9000
- ENTE_S3_ACCESSKEY=${MINIO_ROOT_USER}
- ENTE_S3_SECRETKEY=${MINIO_ROOT_PASSWORD}
- ENTE_S3_BUCKET=ente
- ENTE_S3_REGION=us-east-1
- ENTE_S3_AREVIRTUALHOSTSSUPPORTED=false
- ENTE_JWT_SECRET=${JWT_SECRET}
depends_on:
postgres:
condition: service_healthy
minio:
condition: service_started
volumes:
- ./museum-data:/data
postgres:
image: postgres:15-alpine
container_name: ente-postgres
restart: unless-stopped
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- ./postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
minio:
image: minio/minio
container_name: ente-minio
restart: unless-stopped
command: server /data --console-address ":9001"
environment:
- MINIO_ROOT_USER=${MINIO_ROOT_USER}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
volumes:
- ./minio-data:/data
ports:
- "9000:9000"
- "9001:9001"
minio-setup:
image: minio/mc
container_name: ente-minio-setup
depends_on:
- minio
entrypoint: >
/bin/sh -c "
sleep 5;
mc alias set myminio http://minio:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD};
mc mb myminio/ente || true;
mc anonymous set private myminio/ente;
exit 0;
"POSTGRES_USER=ente
POSTGRES_PASSWORD=your_super_secret_postgres_password
POSTGRES_DB=ente_db
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=your_super_secret_minio_password
JWT_SECRET=your_super_secret_jwt_key_hereAuto-fetched about 18 hours ago
Auto-fetched about 18 hours ago