Owning Your Notes: Self-Hosting Memos with Docker and Secure Access via Pinggy
Source: Dev.to
Introduction
Note‑taking apps are everywhere. They’re fast, polished, and convenient, but they often come with quiet compromises: monthly payments, limited exports, and the uncomfortable feeling that your most personal thoughts live on someone else’s server. For many people, notes are not just reminders—they’re ideas, plans, research, and private reflections. Self‑hosting lets you regain control while keeping things simple.
This guide walks through a practical way to run your own note‑taking system using Memos, containerized with Docker, and made accessible from anywhere using Pinggy.
Why Self‑Host?
- Data ownership – Your notes stay on your machine or server.
- Backup control – You decide how and where to back up your data.
- Privacy – Sensitive information never leaves your trusted environment.
- Flexibility – Choose your own authentication, scaling, and networking options.
About Memos
Memos is a minimalist, open‑source note‑taking service designed around quick capture and ownership. It stores notes as plain‑text Markdown files, making them readable and portable. Under the hood it uses a Go backend, a modern web frontend, and a simple SQLite database by default (MySQL and PostgreSQL are also supported).
Highlights
- Native Markdown support.
- Simple, notebook‑like UI.
- Easy deployment—single Docker command gets you started.
Prerequisites
- Docker installed on your system.
Docker installation
- Windows / macOS – Install Docker Desktop from the official Docker site.
- Ubuntu / Debian – Run:
sudo apt update
sudo apt install docker.io docker-compose
sudo systemctl enable docker --now
sudo usermod -aG docker $USER
After adding yourself to the docker group, log out and log back in.
Running Memos with Docker
A single docker run command is enough to get Memos up and running.
docker run -d \
--name memos \
-p 5230:5230 \
-v ~/.memos:/var/opt/memos \
neosmemo/memos:stable
- The container runs in the background.
- Port 5230 on your machine maps to the app inside the container.
Verify the container is running:
docker ps
Then open your browser and visit http://localhost:5230.
Using Docker Compose (optional)
If you prefer a more structured setup, create a docker-compose.yml file:
version: '3.8'
services:
memos:
image: neosmemo/memos:stable
container_name: memos
ports:
- "5230:5230"
volumes:
- ./memos-data:/var/opt/memos
restart: unless-stopped
Start the service:
docker compose up -d
Docker Compose makes future updates and configuration changes easier to manage.
First Launch
When you open Memos for the first time, you’ll be prompted to create an administrator account. Choose a strong password—it protects all your notes.
The interface is intentionally simple:
- A text box at the top is always ready for a new note.
- Notes appear in a clean timeline, without forced folders or complex hierarchies.
Example first note:
# My First Self‑Hosted Memo
This is my personal note‑taking system running on my own hardware.
- No subscriptions
- Full privacy
- Complete data control
#selfhosted #notes
Tags, search, and Markdown formatting work out of the box.
Remote Access with Pinggy
Running Memos locally is useful, but you’ll often need access from a phone or another laptop. Pinggy creates a secure SSH tunnel, exposing your local service to the internet without changing firewall rules or router settings.
Open a new terminal and run:
ssh -p 443 -R0:localhost:5230 -t free.pinggy.io
You’ll receive a public URL such as:
https://randomstring.a.pinggy.link
Opening this link in a browser gives you access to your Memos instance from anywhere.
Adding HTTP Basic Authentication
To add an extra security layer, Pinggy supports HTTP basic authentication:
ssh -p 443 -R0:localhost:5230 -t free.pinggy.io "b:username:password"
Replace username and password with your own values. Anyone opening the link will need to authenticate before reaching the Memos login page.
Note: With the free tier, the public URL changes each time the tunnel restarts. Persistent subdomains are available on paid plans.
Conclusion
Self‑hosting a note‑taking application doesn’t have to be complex or time‑consuming. With Memos, you get a fast, thoughtful note‑taking experience that stays out of your way. Docker keeps deployment clean and repeatable, while Pinggy removes the networking hurdles that make remote access intimidating.
The result is a personal system where your ideas stay with you—on your terms, without recurring costs or hidden trade‑offs. If you value privacy, simplicity, and control, this setup is a solid place to start.