Skip to main content

Overview

This guide will help you:
  1. Deploy Memos using Docker
  2. Create your admin account
  3. Write your first memo
  4. Explore key features
Prerequisites: Docker installed on your system. Get Docker →

Step 1: Deploy with Docker

1

Run the Docker container

Execute this single command to start Memos:
docker run -d \
  --name memos \
  -p 5230:5230 \
  -v ~/.memos:/var/opt/memos \
  neosmemo/memos:stable
What this does:
  • -d: Run in detached mode (background)
  • --name memos: Name the container for easy management
  • -p 5230:5230: Expose Memos on port 5230
  • -v ~/.memos:/var/opt/memos: Persist data to ~/.memos on your host
  • neosmemo/memos:stable: Use the stable release
Data location: All your memos, attachments, and database are stored in ~/.memos. Back up this directory to preserve your data.
2

Verify it's running

Check the container status:
docker logs memos
You should see output like:
Memos 0.28.0 started successfully!
Data directory: /var/opt/memos
Database driver: sqlite
Server running on port 5230
Access your memos at: http://localhost:5230

Happy note-taking!
3

Open Memos in your browser

Navigate to http://localhost:5230You’ll see the setup screen for creating your first user.
Create a docker-compose.yml file:
docker-compose.yml
version: '3'

services:
  memos:
    image: neosmemo/memos:stable
    container_name: memos
    ports:
      - "5230:5230"
    volumes:
      - ~/.memos:/var/opt/memos
    restart: unless-stopped
    environment:
      # Optional: Set timezone
      - TZ=America/New_York
Then run:
docker-compose up -d

Step 2: Create Your Account

1

Sign up as the first user

The first user created automatically becomes an admin with full system permissions.Fill in the registration form:
  • Username: Your login username (alphanumeric, 4-32 characters)
  • Password: Strong password (min 8 characters recommended)
  • Display Name: How your name appears in memos (optional)
Important: After the first user is created, public registration is disabled by default. You can enable it later in Settings → General → Allow user registration.
2

Sign in

After registration, you’ll be automatically signed in and redirected to the home screen.Memos home screen

Step 3: Create Your First Memo

1

Open the memo editor

At the top of the home screen, you’ll see a text area with the placeholder: “Any thoughts…”Click to focus the editor. This is where you’ll write your memos in Markdown.
2

Write your memo

Try this example to see Memos’ features in action:
# Welcome to Memos! 👋

This is my first memo. Let me test some features:

## Task List
- [x] Install Memos
- [ ] Write my first memo
- [ ] Explore tags and attachments

## Tags
I can use #tags to organize my thoughts. Tags like #productivity and #learning are automatically extracted.

## Code Blocks
```javascript
// Syntax highlighting works great!
console.log('Hello from Memos!');
```

## Links and Resources
Check out the [documentation](https://usememos.com/docs) for more features.

> **Note**: This memo is set to PRIVATE by default, so only I can see it.
Markdown support: Memos supports full GitHub-flavored Markdown including tables, footnotes, and even Mermaid diagrams!
3

Set visibility

Before posting, choose who can see your memo:
Default setting
  • Only visible to you
  • Perfect for personal notes, drafts, and sensitive information
  • Most commonly used visibility setting
4

Post your memo

Click the “POST” button or press Ctrl+Enter (or Cmd+Enter on Mac).Your memo appears in the timeline below! 🎉
Example memo with features

Step 4: Explore Key Features

Add Attachments

Click the 📎 attachment icon in the editor toolbar to upload:
  • Images (auto-embedded in memo)
  • Videos, PDFs, documents
  • Any file type up to your configured limit
Files are stored in your data directory by default.

Use Tags

Type #tagname anywhere in your content:
Working on the #backend refactor today.
Adding #typescript support.
Tags are automatically extracted and appear in the left sidebar for quick filtering.

Pin Important Memos

Click the 📌 pin icon on any memo to keep it at the top of your timeline.Perfect for:
  • Daily task lists
  • Important references
  • Active projects

Search & Filter

Use the search bar to find memos by:
  • Content (full-text search)
  • Tags (click any tag)
  • Date ranges
  • Visibility level
Advanced filters available via the filter icon.

Code Snippets

Store code with syntax highlighting:
```python
def fibonacci(n):
    return n if n <= 1 else fibonacci(n-1) + fibonacci(n-2)
```
Supports 150+ languages!

Dark Mode

Click your profile avatar → SettingsAppearanceChoose from:
  • Light theme
  • Dark theme
  • System preference (auto-switches)

Advanced Features

Create connections between memos:
Related to memo: memos/42
Or use the relations editor when editing a memo. Great for building knowledge graphs!
Track tasks across all your memos:
  1. Use - [ ] for tasks in your memos
  2. Click tasks to toggle completion
  3. View all tasks in sidebar → Tasks view
  4. Filter by incomplete/complete
## Today's Tasks
- [x] Review PRs
- [ ] Write documentation
- [ ] Deploy to production
Create flowcharts, sequence diagrams, and more:
```mermaid
graph TD
    A[Start] --> B{Is it working?}
    B -->|Yes| C[Great!]
    B -->|No| D[Debug it]
    D --> B
```
Renders as an interactive diagram in your memo!
Subscribe to your memos via RSS:
  • Personal feed: http://localhost:5230/u/your-username/rss.xml
  • Public memos only: http://localhost:5230/explore/rss.xml
Perfect for reading memos in your favorite RSS reader!
Integrate with other tools using the API:
# Get your access token from Settings → Access Tokens
export MEMOS_TOKEN="your-token-here"

# Create a memo via API
curl -X POST http://localhost:5230/api/v1/memos \
  -H "Authorization: Bearer $MEMOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "memo": {
      "content": "Created via API!",
      "visibility": "PRIVATE"
    }
  }'
See our API Reference for full documentation.

Keyboard Shortcuts

Power user tip: Master these shortcuts to write memos faster!
ShortcutAction
Ctrl+Enter (or Cmd+Enter)Post current memo
EscapeClear editor
Ctrl+KFocus search
/Focus memo editor
Ctrl+BBold text
Ctrl+IItalic text
Ctrl+LInsert link

Common Configuration

1

Change default visibility

Navigate to: SettingsPreferencesDefault memo visibilityChoose PRIVATE, PROTECTED, or PUBLIC as your default when creating memos.
2

Enable user registration

As an admin: SettingsGeneralAllow user registrationEnable this to let others create accounts on your instance.
3

Configure storage

SettingsStorage → Choose between:
  • Local storage (default): Files stored in data directory
  • S3-compatible: Use AWS S3, MinIO, Cloudflare R2, etc.
# Configure S3 via environment variables
docker run -d \
  --name memos \
  -p 5230:5230 \
  -v ~/.memos:/var/opt/memos \
  -e MEMOS_DRIVER=postgres \
  -e MEMOS_DSN="postgres://user:pass@localhost/memos" \
  neosmemo/memos:stable

Backup Your Data

Important: Always backup your data directory before upgrades!
# Stop the container
docker stop memos

# Backup data directory
tar -czf memos-backup-$(date +%Y%m%d).tar.gz ~/.memos/

# Restart container
docker start memos

Troubleshooting

Check if container is running:
docker ps | grep memos
Check logs for errors:
docker logs memos
Port already in use? Change the host port:
docker run -d --name memos -p 8080:5230 -v ~/.memos:/var/opt/memos neosmemo/memos:stable
Then access at http://localhost:8080
Reset password via command line:
docker exec -it memos /usr/local/memos/memos \
  --data /var/opt/memos \
  --admin-password-reset
Ensure the data directory is writable:
mkdir -p ~/.memos
chmod 755 ~/.memos
If upgrading from old version:
  1. Backup your data first!
  2. Check minimum version requirement in release notes
  3. Memos requires version 0.22+ for migrations
See Upgrade Guide for details.

Next Steps

Production Deployment

Deploy with PostgreSQL, HTTPS, and backups

Configure SSO

Set up OAuth2/OIDC authentication

API Integration

Build automations and integrations

Mobile Apps

Access Memos on iOS and Android
Need help? Join our Discord community or check out GitHub Discussions.

Build docs developers (and LLMs) love