Pushword
★ 30About
Community Ratings
No ratings yetNew this week
Read recap →Features
- Markdown + Twig content
- multi-site support
- multi-language support
- flat-file Git-based content
- static site export
- REST API
- full-text search
- page versioning
- dead link and redirect scanning
- newsletter campaigns and automations
Details
- Last Updated
- Nov 10, 2026
- Created
- Dec 25, 2020
- Install Methods
- package-managersource
- Requirements
- PHPComposerSQLite
- Default Port
- 8004local web server
- Authentication
- local
- API
- REST
- Backup & Export
- native-exportfile-backup
- Runtime / Stack
- PHP
- Privacy & Independence
- No Cloud RequiredOffline Capable
- User Model
- Multi-User
- Deployment
Deployment: Docker Compose ✓Single Container — minimal hosting footprintsingle container
Run Pushword yourself
Pick how much you want to manage.
netcupBest match
Full control
A small server, then Docker Compose.
About 20 minutes with Docker
Hetzner
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
1 more way to host
Some links earn us a commission. netcup pays us one and is our preferred VPS host.
Is this your project? Sponsor a listing
Run Pushword with Docker Compose
Compose file from the Pushword project repository.
1 service
no resource limits declared
needs persistent storage (6 volumes)
packages/dev-app/docker-skeleton/compose.prod.yaml · @ f2f146c · scanned Nov 3, 2026
# Production stack: `docker compose -f compose.prod.yaml up -d --build`.
#
# Set these in a `.env` next to this file:
# CADDY_SERVER_NAME=example.com # a domain, not a port: Caddy then gets the
# # TLS certificate itself
# HTTP_PORT=80
# HTTPS_PORT=443
services:
pushword:
build:
context: .
target: pushword_prod
restart: unless-stopped
environment:
APP_ENV: prod
CADDY_SERVER_NAME: ${CADDY_SERVER_NAME:-:80}
# Read once, on the first boot of an empty database.
PUSHWORD_ADMIN_EMAIL: ${PUSHWORD_ADMIN_EMAIL:-admin@example.tld}
PUSHWORD_ADMIN_PASSWORD: ${PUSHWORD_ADMIN_PASSWORD:-}
volumes:
# Everything Pushword writes. Delete one of these and you delete content:
# var/ holds the SQLite database, media/ the originals you uploaded.
- var:/app/var
- media:/app/media
- media_cache:/app/public/media
- static:/app/static
- caddy_data:/data
- caddy_config:/config
ports:
- '${HTTP_PORT:-8080}:80'
- '${HTTPS_PORT:-8443}:443'
- '${HTTPS_PORT:-8443}:443/udp'
volumes:
var:
media:
media_cache:
static:
caddy_data:
caddy_config:
This file may be out of date. Check the Pushword documentation for current setup steps.
Tags
Track your self-hosted stack
Bookmark software to try, rate tools you've used, and keep your collection in one place.