|
|
||
|---|---|---|
| .github | ||
| bin/memos | ||
| internal | ||
| plugin | ||
| proto | ||
| scripts | ||
| server | ||
| store | ||
| web | ||
| .dockerignore | ||
| .gitignore | ||
| .golangci.yaml | ||
| .goreleaser.yaml | ||
| AGENTS.md | ||
| CODEOWNERS | ||
| LICENSE | ||
| README.md | ||
| SECURITY.md | ||
| go.mod | ||
| go.sum | ||
README.md
Memos
A modern, open-source, self-hosted knowledge management and note-taking platform designed for privacy-conscious users and organizations. Memos provides a lightweight yet powerful solution for capturing, organizing, and sharing thoughts with comprehensive Markdown support and cross-platform accessibility.
Table of Contents
Overview
Memos is a lightweight, self-hosted alternative to cloud-based note-taking services. Built with privacy and performance in mind, it offers a comprehensive platform for personal knowledge management without compromising data ownership or security.
Key Features
Privacy & Security
- Complete Data Ownership — All data stored locally in your chosen database
- Self-Hosted Architecture — Full control over infrastructure and access policies
- No External Dependencies — Zero third-party services or cloud connections required
Content Creation
- Instant Save — Streamlined plain text input with automatic persistence
- Rich Markdown Support — Full Markdown rendering with syntax highlighting
- Media Integration — Native support for images, links, and embedded content
Performance & Technology
- High-Performance Backend — Built with Go for optimal resource utilization
- Modern React Frontend — Responsive, intuitive user interface
- Lightweight Deployment — Minimal system requirements, maximum efficiency
- Cross-Platform — Linux, macOS, Windows, and containerized environments
Customization
- Configurable Interface — Custom branding, themes, and UI elements
- API-First Design — RESTful API for seamless third-party integrations
- Multi-Database Support — SQLite, PostgreSQL, and MySQL compatibility
Cost-Effective
- Open Source (MIT) — Full source code availability with permissive licensing
- Zero Subscription Fees — No usage limits, premium tiers, or hidden costs
- Community-Driven — Transparent development with active community support
Quick Start
Get Memos running in under 1 minutes with Docker:
docker run -d \
--name memos \
--restart unless-stopped \
-p 5230:5230 \
-v ~/.memos:/var/opt/memos \
neosmemo/memos:stable
Access Memos at http://localhost:5230 and complete the initial setup.
Alternative methods: For Docker Compose, binary installation, or building from source, see our Installation Guide.
Pro Tip: The data directory stores all your notes, uploads, and settings. Include it in your backup strategy!
🔒 Database Encryption (for SQLite)
For enhanced security, Memos supports transparent, full-database encryption for SQLite using SQLCipher. This "Encryption at Rest" feature protects your database file even if your server's file system is compromised.
[!IMPORTANT] This is not End-to-End Encryption (E2E). The Memos server holds the key in memory to process data. It protects the database file on the disk, not data from an attacker who has compromised the running application.
Enabling this feature is a two-step process: building a special version of Memos and providing a key at runtime.
Using Docker (Recommended)
-
Build the SQLCipher-enabled image:
docker build \ --build-arg CGO_ENABLED=1 \ --build-arg MEMOS_BUILD_TAGS="memos_sqlcipher libsqlite3 sqlite_omit_load_extension" \ -t memos-sqlcipher \ -f scripts/Dockerfile . -
Run the container with the encryption key: Provide your secret key via the
MEMOS_SQLITE_ENCRYPTION_KEYenvironment variable.docker run -d \ --name memos \ -p 5230:5230 \ -v ~/.memos:/var/opt/memos \ -e MEMOS_SQLITE_ENCRYPTION_KEY="your-super-secret-key" \ memos-sqlcipher
[!WARNING] Key Management is Your Responsibility. If you lose your encryption key, your data is permanently unrecoverable. Back up your key in a secure location like a password manager.
For detailed instructions, including how to encrypt an existing database, please see our full documentation on Database Encryption.
Sponsors
Memos is made possible by the generous support of our sponsors. Their contributions help ensure the project's continued development, maintenance, and growth.
Every contribution, no matter the size, makes a difference!
Contributing
Memos welcomes contributions from developers, designers, and users worldwide. We value quality, innovation, and community feedback.
Ways to Contribute:
- Code contributions (bug fixes, features, performance improvements)
- Documentation and user guides
- Testing and bug reporting
- Localization and translation
- Community support
Get Started: Contributing Guide • Code of Conduct
