Start here

Run your own documents, notes and code, on one box.

Twenty-four containers, grouped by the job they do, with honest notes on which ones overlap and which ones you should not run together.

What this is

This site helps you run your own document server: the things you write in, the things you file, the things you sign, and the code you keep. Twenty-four containers, grouped by the job they do.

Most self-hosting guides hand you one enormous compose file and wish you luck. That works right up to the first error message, at which point you have no idea which of the fourteen services is broken or why. This site takes the opposite approach. Every container is a module you can add or leave out, and every module entry tells you what it needs, what it costs you, and what tends to go wrong with it.

This is the second of two sites. The media server is where to start if Docker is new to you; this one picks up after that.

Three things are true of everything here:

  • It runs in Docker, on hardware you control.
  • Your documents stay on your disk.
  • You can leave. Every module in the list has an export path, and the Help page covers how to use it.
You do not need all of this. A useful workspace server is often three containers. The list is long because people want different things, not because you should run the whole list.

New to this? Start next door

If you have not run a container before, do the media server first. It is the same design, the same voice, and the same generator, aimed at an easier problem.

Modular Media Server is the beginner project. Fewer services, one obvious goal, and a Docker introduction written for someone who has never opened a terminal for this. It covers Docker, Compose and Arcane from nothing.

This site is the intermediate one. It assumes you already know what a volume is, and it spends its pages on the harder parts: apps that need two domains, apps that need a mail server, and apps that hand out a root shell if you publish them.

Media serverWorkspace server
LevelBeginnerIntermediate
Teaches DockerYes, from scratchAssumes it, recaps in the Guide
ShapeOne stack that does one jobPick one tool per job, from seven jobs
Hardest partGetting the first container runningDomains, mail, and what must never be published

They share a generator design, so anything you learned about modules, storage layouts and secrets over there applies here unchanged. Both produce a compose file, a .env and an install script that checks what system you are on before it touches anything.

Who it is for

You will get on with this site if you can open a terminal, edit a text file, and are willing to read an error message rather than delete everything and start again. You do not need to know Docker already. The Guide covers what you need before anything else makes sense.

You will find this frustrating if you want a one-click appliance. Several of these applications need a database, a reverse proxy, and a real domain name before they will work properly, and no amount of friendly writing changes that. Where an app is genuinely hard to run, this site says so instead of pretending.

What this costs. Nothing, if you already own a machine that stays on. If you do not, the cheapest honest answer is usually a second-hand mini PC rather than a VPS, because the storage is where the money goes and rented storage is expensive. Platforms works through that comparison with numbers.

The stack at a glance

Every module does one job, and seven of those jobs have more than one option. Within a job the options are genuine alternatives, so the generator gives you one: picking a second wiki swaps out the first rather than leaving you running two.

These are the seven where you choose.

JobOptionsMost people want
PDF toolsStirling-PDF, BentoPDFStirling-PDF, unless you want zero server-side processing
Document archivePaperless-ngx, DocspellPaperless-ngx
WikiBookStack, Wiki.jsBookStack
Code forgeForgejo, GogsForgejo
Link-based file sendingPsiTransfer, ZiplinePsiTransfer, unless you want ShareX support
Full workspaceAppFlowy, HulyNeither, unless you have the RAM for it
DashboardHomarr, DashyEither. Pick by whether you want YAML or a GUI

The rest have no alternative to choose between, so they simply coexist: PdfDing for reading, Obsidian for notes, Kiwix for offline reference, PairDrop for sending files across the room, Chibisafe for a gallery, CryptPad for encrypted editing, Calligra for office documents, Wekan for boards, OpenSign for signatures, Jitsi Meet for calls, and Arcane for managing Docker itself. You can run all of them alongside one pick from each row above.

AppFlowy and Huly are much larger than everything else here, which is why the Hardware page gives them their own warning.

Where to start

  1. Read the Guide. Volumes, networks and reverse proxies. Twenty minutes, and everything afterwards assumes it.
  2. Pick a box. Platforms covers NAS, mini PC, VPS and Raspberry Pi, and what each can actually carry.
  3. Build a compose file. The Generator resolves dependencies, generates secrets in your browser, and writes the files for you.
  4. Set the apps up. App setup has the first-run steps and the specific place each app trips people up.
  5. Decide how you reach it. Access covers proxies, VPNs and tunnels, and lists the containers that should never be published to the internet.
Read the Access page before you open anything to the internet. Two of the applications in this list ship with no authentication at all and give anyone who reaches them a root shell inside the container. They are still worth running. They are not worth publishing.