Self-Hosting Overview
Neocache is designed to be self-hosted. Run it on your own infrastructure with full control over your data.
Why Self-Host?
- Data sovereignty - Your build artifacts stay on your infrastructure
- No usage limits - Scale as needed without per-GB pricing
- Custom integrations - Connect to your existing systems
- Air-gapped environments - Works without internet access
Requirements
Minimum Requirements
- Database: PostgreSQL 14+ (recommended) or SQLite
- Storage: S3-compatible storage or local filesystem
- Memory: 512 MB RAM minimum
- CPU: 1 vCPU minimum
Recommended for Production
- Database: PostgreSQL 14+ with connection pooling
- Storage: S3-compatible (AWS S3, Cloudflare R2, MinIO)
- Memory: 2+ GB RAM
- CPU: 2+ vCPUs
- Reverse proxy: nginx, Caddy, or Traefik with TLS
Deployment Options
Docker (Recommended)
The simplest way to get started:
docker run -d \
-p 8080:8080 \
-e DATABASE_URL="postgres://..." \
-e S3_BUCKET="neocache" \
ghcr.io/neocache/neocache:latest
NixOS Module
Native NixOS integration:
{
services.neocache = {
enable = true;
settings = {
listen = "[::]:8080";
database.url = "postgres:///neocache";
};
};
}
Kubernetes
Helm chart available:
helm repo add neocache https://charts.neocache.io
helm install neocache neocache/neocache
Architecture
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Client │────▶│ Neocache │────▶│ Storage │
│ (CLI) │ │ Server │ │ (S3) │
└─────────────┘ └──────┬──────┘ └─────────────┘
│
┌──────▼──────┐
│ PostgreSQL │
└─────────────┘
Next Steps
Choose your deployment method:
- Docker - Containerized deployment
- NixOS - Native NixOS module
- Kubernetes - Helm chart deployment