As a student developer, my patience for loading spinners is zero. Why wait for a "Free" cloud tool to sync (and sell your data) when you can run a powerhouse locally?
Self-hosting isn't just for people with a massive home lab. It’s a power-user move to reclaim your productivity. 🚀
Here is my $0 Self-Hosted "Power Stack" and the exact guide to getting it running in 10 minutes.
📦 The "Power-Tool" Lineup
1️⃣ Bookstack (Documentation)
My "Brain-in-a-Box." 🧠 Instead of messy folders or scattered Notion pages, it uses a "Bookshelf" metaphor that actually makes sense for project wikis and PCM study notes.
2️⃣ Stirling-PDF (The PDF "Swiss Army Knife")
The absolute king of PDF tools. 🛠️ Merge, split, OCR, sign, and convert - all locally. No more "3 free tasks remaining" warnings or uploading sensitive docs to random sites.
3️⃣ Jotty (Checklists & Notes)
The Database-Free productivity hub. ⚡ Ultra-fast, lightweight, and stores everything in simple files. Since there's no heavy SQL database, it's incredibly portable.
🚀 From Zero to Hero: The Setup Guide
Forget complicated server setups. We’re using Docker Compose. It’s the magic wand that turns a single text file into a fully running suite of applications.
🛠️ The Prerequisites
A Computer: Your current laptop (Windows, Mac, or Linux) is perfect.
Docker Installed: Install Docker Desktop.
📝 Step 1: Create Your "Homelab" Folder
Open your terminal and run:
mkdir my-power-stack
cd my-power-stack
📄 Step 2: The Magic "Recipe" File
Create a file named docker-compose.yml in that folder and paste this code.
⚠️ **Note:* Change the passwords marked below before saving!*
version: "3.8"
services:
# 📚 Bookstack (Documentation & Wiki)
bookstack:
image: lscr.io/linuxserver/bookstack:latest
container_name: bookstack
environment:
- APP_URL=http://localhost:6875
- DB_HOST=bookstack_db
- DB_USER=bookstack
- DB_PASS=supersecretpassword # CHANGE THIS!
- DB_DATABASE=bookstackapp
volumes:
- ./bookstack_data:/config
ports:
- 6875:80
restart: unless-stopped
depends_on:
- bookstack_db
# The database for Bookstack
bookstack_db:
image: lscr.io/linuxserver/mariadb:latest
container_name: bookstack_db
environment:
- MYSQL_ROOT_PASSWORD=rootpassword # CHANGE THIS!
- MYSQL_DATABASE=bookstackapp
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=supersecretpassword # CHANGE THIS!
volumes:
- ./bookstack_db_data:/config
restart: unless-stopped
# 📑 Stirling-PDF (Your Local PDF Tools)
stirling-pdf:
image: frooodle/s-pdf:latest
container_name: stirling-pdf
ports:
- 8080:8080
restart: unless-stopped
# ✍️ Jotty (Checklists & Notes)
jotty:
image: fccview/jotty:latest
container_name: jotty
ports:
- 3000:3000
volumes:
- ./jotty_data:/app/data
restart: unless-stopped
🚀 Step 3: Ignite the Engine
In your terminal, run:
docker-compose up -d
Docker will pull the images and start everything in the background.
🎉 Step 4: Access Your Tools
- 📚 Bookstack:
http://localhost:6875(Login: [email protected] / password) - 📑 Stirling-PDF:
http://localhost:8080
- ✍️ Jotty:
http://localhost:3000
💡 Why This is a "Student Developer" Superpower
You just built a personal suite that is:
Yours: No one else has your data.
Free: $0 licensing costs.
Portable: Move to a new laptop? Just copy themy-power-stackfolder and run the command again.
This isn't just about taking notes; it's about taking control of your digital environment. That's an engineering mindset. 🛠️
👇 Did you get it running? Let me know in the comments if you hit a snag or what your first Bookstack page is going to be!


