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: "5.0"
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: admin@admin.com / 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 the
my-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. π οΈ
- Want more dev-tool deep dives? > Iβm building a community for student developers to master local-first workflows and open-source hacks. π© Be among the first to join my Substack: Subscribe here
π 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!



Top comments (0)