pico
★ 1.3kA self-hosted alternative to Vercel Heroku
About
Community Ratings
No ratings yetNew this week
Read recap →Features
- static site hosting
- local port tunneling
- authenticated pipes
- blog publishing
- code snippet sharing
- RSS email notifications
- custom domain TLS handling
Details
- Last Updated
- Oct 31, 2026
- Created
- Aug 24, 2022
- Install Methods
- source
- Requirements
- sshrsyncscpsftp
- Authentication
- local
- Privacy & Independence
- Cloud: Required
- Deployment
Deployment: Docker Compose ✓17 Containers — heavy hosting footprintRuns as 17 containers
Run pico yourself
Pick how much you want to manage.
HetznerBest match
Full control
A small server, then Docker Compose.
About 20 minutes with Docker
DigitalOcean
Full control
A small server, then Docker Compose.
About 20 minutes with Docker
OVHcloud
Full control
A small server, then Docker Compose.
About 20 minutes with Docker
Is this your project? Sponsor a listing
Run pico with Docker Compose
Compose file from the pico project repository.
17 services · database: postgres · infra: postgres · 1 unclassified (imgproxy)
no resource limits declared
needs persistent storage (1 volume)
docker-compose.yml · @ e848548 · scanned Jun 6, 2026
services:
postgres:
image: postgres:14
restart: always
profiles:
- db
- all
imgproxy:
image: darthsim/imgproxy:latest
restart: always
profiles:
- all
- prose
- pgs
pipemgr:
image: ghcr.io/picosh/pipemgr:latest
command: -command "pub metric-drain -b=false"
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 2s
timeout: 5s
retries: 5
start_period: 1s
profiles:
- all
- log
pastes-web:
image: ghcr.io/picosh/pico/pastes-web:latest
restart: always
profiles:
- pastes
- services
- all
pastes-ssh:
image: ghcr.io/picosh/pico/pastes-ssh:latest
restart: always
profiles:
- pastes
- services
- all
pipe-web:
image: ghcr.io/picosh/pico/pipe-web:latest
restart: always
profiles:
- pipe
- services
- all
pipe-ssh:
image: ghcr.io/picosh/pico/pipe-ssh:latest
restart: always
profiles:
- pipe
- services
- all
prose-web:
image: ghcr.io/picosh/pico/prose-web:latest
restart: always
profiles:
- prose
- services
- all
prose-ssh:
image: ghcr.io/picosh/pico/prose-ssh:latest
restart: always
profiles:
- prose
- services
- all
pgs-web:
image: ghcr.io/picosh/pico/pgs-web:latest
restart: always
profiles:
- pgs
- services
- all
pgs-cdn:
image: ghcr.io/picosh/pico/pgs-cdn:latest
restart: always
profiles:
- pgs-cdn
- services
- all
pgs-ssh:
image: ghcr.io/picosh/pico/pgs-ssh:latest
restart: always
profiles:
- pgs
- services
- all
feeds-web:
image: ghcr.io/picosh/pico/feeds-web:latest
restart: always
profiles:
- feeds
- services
- all
feeds-ssh:
image: ghcr.io/picosh/pico/feeds-ssh:latest
restart: always
profiles:
- feeds
- services
- all
pico-ssh:
image: ghcr.io/picosh/pico/pico-ssh:latest
restart: always
profiles:
- pico
- services
- all
auth-web:
image: ghcr.io/picosh/pico/auth-web:latest
restart: always
profiles:
- auth
- services
- all
bouncer:
image: ghcr.io/picosh/pico/bouncer:latest
restart: always
profiles:
- bouncer
- services
- all
This file may be out of date. Check the pico documentation for current setup steps.
Track your self-hosted stack
Bookmark software to try, rate tools you've used, and keep your collection in one place.