brewsterkahle/onionpress

Easy and free self-hosted web server for macOS (wordpress+Tor Onion Service)

Python

22

1,033 commits

updated Sep 25, 2026

See the code

See what people are saying

README

OnionPress logo

Your Decentralized Social Blog Site

Website · Download

OnionPress

Run your own website from your computer. Just Works. Free, forever.

OnionPress turns your Mac or Linux computer into a web server running WordPress, accessible via the Tor network. Your site gets its own permanent .onion address that no one can take away from you. It's backed up automatically by the Internet Archive's Wayback Machine.

WordPress + Tor + Wayback Machine. You write. Tor delivers. Wayback remembers.

Features

  • 📝 Full WordPress: Any theme, any plugin, a dashboard you already know
  • 🧅 Permanent .onion Address: Your own address on the Tor network — no domain registrar, no DNS, uncensorable
  • 🏛️ Wayback Machine Integration: Automatically archived and served when you're offline
  • 🏠 Works Behind Firewalls: Home, school, work — Tor punches through NAT and firewalls
  • 🔐 Private by Default: No analytics, no tracking, no ads. End-to-end encrypted without certificates
  • 🐳 Sandboxed: Docker containers inside a VM for isolation and security
  • 📱 Mac Menu Bar App: Purple onion icon with one-click controls
  • 🐧 Linux Support: CLI + systemd for servers and Raspberry Pi

Requirements

  • Mac: macOS 13.0 (Ventura) or later
  • Linux: Docker and Docker Compose
  • Internet connection

Installation

Mac

  1. Download onionpress.dmg
  2. Drag OnionPress.app to Applications and launch
  3. First launch takes 3-5 minutes (one-time setup)

Linux

One command installs everything:

curl -sSL https://raw.githubusercontent.com/brewsterkahle/onionpress/main/linux/install.sh | bash

Or download the .deb package:

wget https://github.com/brewsterkahle/onionpress/releases/latest/download/onionpress.deb
sudo apt-get install ./onionpress.deb
sudo systemctl start onionpress

After install: onionpress status, onionpress address, onionpress logs.

macOS Security Warning

On first launch, macOS will show a security warning (normal for open-source software). Go to System Settings → Privacy & Security, scroll down, and click "Open Anyway".

Usage

On Mac, OnionPress appears in your menu bar:

  • 🟣 Purple = running and available
  • 🟡 Yellow = starting or reconnecting
  • ⚪ Gray = stopped

Viewing Your Site

Your site is viewable on any Tor-enabled browser:

Architecture

OnionPress is built on WordPress, Tor, and the Internet Archive's Wayback Machine.

All data is stored in:

  • ~/.onionpress/ — Application state, logs, config
  • ~/OnionPress/ — Backups and My Creations
  • Docker volumes for WordPress content, database, and Tor keys

Disk usage

OnionPress runs Docker inside a Colima VM on macOS. The VM's disk image lives at ~/.onionpress/colima/_lima/colima/diffdisk and is a sparse file — the operating system only allocates real disk for blocks that have been written to.

To see real vs. apparent size:

$ du -sh ~/.onionpress/colima/_lima/colima/diffdisk     # real allocation
3.2G    diffdisk

$ ls -lh ~/.onionpress/colima/_lima/colima/diffdisk     # apparent (= cap)
-rw-------  1 you  staff   20G May 19 13:50 diffdisk

Finder shows the apparent size, which is the configured cap. New installs are capped at 20 GiB; existing installs created before that change keep their original 100 GiB cap (the cap is set when the VM is first created and is not changed by upgrades). To override before first launch, set VM_DISK=N (in GiB) in ~/.onionpress/config. OnionHeaven hub installs auto-bump to 100 GiB to accommodate takeover containers at scale.

Real disk usage stays small: after months of typical use, expect 3–7 GB for the full ~/.onionpress/ tree. The menubar's "Check for Updates" flow automatically prunes dangling Docker image versions after each successful image pull, so old releases don't accumulate on disk.

If you want to apply the smaller 20 GiB cap to an existing install:

onionpress backup          # IMPORTANT: back up first — data loss otherwise
/Applications/OnionPress.app/Contents/MacOS/onionpress quit
colima delete onionpress   # destroys the VM and its diffdisk
open /Applications/OnionPress.app  # next launch creates a fresh 20 GiB VM
onionpress restore <backup-path>

This is a manual procedure because shrinking the diffdisk on a running install requires recreating the VM. Most users will never need to do this — sparse files mean the existing 100 GiB cap is a Finder display quirk, not actual disk consumption.

Building from Source

# Mac DMG
bash build/build-dmg-simple.sh

# Linux .deb
bash build/build-linux.sh

Uninstalling

  • Mac: Click Uninstall from the menu bar app. It will remove all data and quit.
  • Linux: Run onionpress uninstall

License

AGPL 3 License - See LICENSE file for details

Credits

A Decentralized Web project.

Free and Open Source (AGPL 3). Donate to the Tor Project · Donate to the Internet Archive

Support

For issues, questions, or contributions, visit the GitHub repository or the product page.

Significant stargazers

mfahampshire

56 followers · starred Jul 2026

Mark Nadal

1,393 followers · starred Feb 2026

brewsterkahle/onionpress

Easy and free self-hosted web server for macOS (wordpress+Tor Onion Service)

Python

22

1,033 commits

updated Sep 25, 2026

See the code

See what people are saying

README

OnionPress logo

Your Decentralized Social Blog Site

Website · Download

OnionPress

Run your own website from your computer. Just Works. Free, forever.

OnionPress turns your Mac or Linux computer into a web server running WordPress, accessible via the Tor network. Your site gets its own permanent .onion address that no one can take away from you. It's backed up automatically by the Internet Archive's Wayback Machine.

WordPress + Tor + Wayback Machine. You write. Tor delivers. Wayback remembers.

Features

  • 📝 Full WordPress: Any theme, any plugin, a dashboard you already know
  • 🧅 Permanent .onion Address: Your own address on the Tor network — no domain registrar, no DNS, uncensorable
  • 🏛️ Wayback Machine Integration: Automatically archived and served when you're offline
  • 🏠 Works Behind Firewalls: Home, school, work — Tor punches through NAT and firewalls
  • 🔐 Private by Default: No analytics, no tracking, no ads. End-to-end encrypted without certificates
  • 🐳 Sandboxed: Docker containers inside a VM for isolation and security
  • 📱 Mac Menu Bar App: Purple onion icon with one-click controls
  • 🐧 Linux Support: CLI + systemd for servers and Raspberry Pi

Requirements

  • Mac: macOS 13.0 (Ventura) or later
  • Linux: Docker and Docker Compose
  • Internet connection

Installation

Mac

  1. Download onionpress.dmg
  2. Drag OnionPress.app to Applications and launch
  3. First launch takes 3-5 minutes (one-time setup)

Linux

One command installs everything:

curl -sSL https://raw.githubusercontent.com/brewsterkahle/onionpress/main/linux/install.sh | bash

Or download the .deb package:

wget https://github.com/brewsterkahle/onionpress/releases/latest/download/onionpress.deb
sudo apt-get install ./onionpress.deb
sudo systemctl start onionpress

After install: onionpress status, onionpress address, onionpress logs.

macOS Security Warning

On first launch, macOS will show a security warning (normal for open-source software). Go to System Settings → Privacy & Security, scroll down, and click "Open Anyway".

Usage

On Mac, OnionPress appears in your menu bar:

  • 🟣 Purple = running and available
  • 🟡 Yellow = starting or reconnecting
  • ⚪ Gray = stopped

Viewing Your Site

Your site is viewable on any Tor-enabled browser:

Architecture

OnionPress is built on WordPress, Tor, and the Internet Archive's Wayback Machine.

All data is stored in:

  • ~/.onionpress/ — Application state, logs, config
  • ~/OnionPress/ — Backups and My Creations
  • Docker volumes for WordPress content, database, and Tor keys

Disk usage

OnionPress runs Docker inside a Colima VM on macOS. The VM's disk image lives at ~/.onionpress/colima/_lima/colima/diffdisk and is a sparse file — the operating system only allocates real disk for blocks that have been written to.

To see real vs. apparent size:

$ du -sh ~/.onionpress/colima/_lima/colima/diffdisk     # real allocation
3.2G    diffdisk

$ ls -lh ~/.onionpress/colima/_lima/colima/diffdisk     # apparent (= cap)
-rw-------  1 you  staff   20G May 19 13:50 diffdisk

Finder shows the apparent size, which is the configured cap. New installs are capped at 20 GiB; existing installs created before that change keep their original 100 GiB cap (the cap is set when the VM is first created and is not changed by upgrades). To override before first launch, set VM_DISK=N (in GiB) in ~/.onionpress/config. OnionHeaven hub installs auto-bump to 100 GiB to accommodate takeover containers at scale.

Real disk usage stays small: after months of typical use, expect 3–7 GB for the full ~/.onionpress/ tree. The menubar's "Check for Updates" flow automatically prunes dangling Docker image versions after each successful image pull, so old releases don't accumulate on disk.

If you want to apply the smaller 20 GiB cap to an existing install:

onionpress backup          # IMPORTANT: back up first — data loss otherwise
/Applications/OnionPress.app/Contents/MacOS/onionpress quit
colima delete onionpress   # destroys the VM and its diffdisk
open /Applications/OnionPress.app  # next launch creates a fresh 20 GiB VM
onionpress restore <backup-path>

This is a manual procedure because shrinking the diffdisk on a running install requires recreating the VM. Most users will never need to do this — sparse files mean the existing 100 GiB cap is a Finder display quirk, not actual disk consumption.

Building from Source

# Mac DMG
bash build/build-dmg-simple.sh

# Linux .deb
bash build/build-linux.sh

Uninstalling

  • Mac: Click Uninstall from the menu bar app. It will remove all data and quit.
  • Linux: Run onionpress uninstall

License

AGPL 3 License - See LICENSE file for details

Credits

A Decentralized Web project.

Free and Open Source (AGPL 3). Donate to the Tor Project · Donate to the Internet Archive

Support

For issues, questions, or contributions, visit the GitHub repository or the product page.

Significant stargazers

mfahampshire

56 followers · starred Jul 2026

Mark Nadal

1,393 followers · starred Feb 2026

Languages

Python

57.6%

PHP

21.6%

Shell

18.9%