Files
Containr/templates/memos.md
T
2026-04-10 12:02:36 +02:00

353 lines
6.9 KiB
Markdown

# Memos Open Source Notion Alternative Template
## Overview
Memos is a lightweight, self-hosted memo hub for your personal notes and thoughts.
## Quick Start
```bash
# Create docker-compose.yml with the content below
docker-compose up -d
```
## Docker Compose
```yaml
version: '3.8'
services:
memos:
image: usememos/memos:latest
container_name: memos
restart: unless-stopped
ports:
- "5230:5230"
environment:
- MEMOS_MODE=prod
- MEMOS_DRIVER=postgres
- MEMOS_POSTGRES_DSN=postgres://memos:memos@postgres:5432/memos
- MEMOS_PORT=5230
- MEMOS_ADDR=0.0.0.0
volumes:
- memos-data:/var/opt/memos
depends_on:
- postgres
networks:
- memos-network
postgres:
image: postgres:15-alpine
container_name: memos-postgres
restart: unless-stopped
environment:
- POSTGRES_DB=memos
- POSTGRES_USER=memos
- POSTGRES_PASSWORD=memos
volumes:
- memos-db:/var/lib/postgresql/data
networks:
- memos-network
volumes:
memos-data:
memos-db:
networks:
memos-network:
driver: bridge
```
## Environment Variables
- `MEMOS_MODE`: Running mode (prod/dev)
- `MEMOS_DRIVER`: Database driver (postgres/sqlite)
- `MEMOS_POSTGRES_DSN`: PostgreSQL connection string
- `MEMOS_PORT`: Application port
- `MEMOS_ADDR`: Bind address
## Setup Guide
1. **Deploy**:
```bash
docker-compose up -d
```
2. **Access**: Open http://localhost:5230
3. **Initial Setup**:
- Create admin account
- Set username and password
- Configure workspace settings
4. **Create First Memo**:
- Click "+" button
- Write your first note
- Add tags for organization
## SQLite Alternative
```yaml
# For smaller deployments, use SQLite instead of PostgreSQL
services:
memos:
image: usememos/memos:latest
container_name: memos
restart: unless-stopped
ports:
- "5230:5230"
environment:
- MEMOS_MODE=prod
- MEMOS_DRIVER=sqlite
volumes:
- memos-data:/var/opt/memos
- ./memos.db:/var/opt/memos/memos.db
networks:
- memos-network
volumes:
memos-data:
```
## Configuration Options
### Environment Variables
```yaml
environment:
- MEMOS_MODE=prod
- MEMOS_DRIVER=postgres
- MEMOS_POSTGRES_DSN=postgres://user:pass@host:5432/db
- MEMOS_PORT=5230
- MEMOS_ADDR=0.0.0.0
- MEMOS_SECRET_KEY=your-secret-key
- MEMOS_DATA=/var/opt/memos
- MEMOS_DSN=file:/var/opt/memos/memos.db
```
### Advanced Configuration
```yaml
# Custom configuration file
volumes:
- ./config.yaml:/var/opt/memos/config.yaml
# Example config.yaml
# server:
# port: 5230
# mode: prod
# addr: 0.0.0.0
# database:
# driver: postgres
# dsn: postgres://memos:memos@postgres:5432/memos
```
## Features
### Note Organization
- **Tags**: Categorize notes with hashtags
- **Archives**: Archive old notes
- **Favorites**: Mark important notes
- **Search**: Full-text search across all notes
### Markdown Support
```markdown
# Headers
## Subheaders
**Bold text**
*Italic text*
- Lists
- With items
`Code snippets`
[Links](https://example.com)
> Blockquotes
```
### Daily Memo
- **Daily notes**: Create daily journal entries
- **Templates**: Use templates for consistent formatting
- **Reminders**: Set reminders for important notes
### Sharing
- **Public links**: Share individual notes
- **RSS feeds**: Export notes as RSS
- **Export**: Export notes as markdown files
## Reverse Proxy (Traefik)
```yaml
labels:
- "traefik.enable=true"
- "traefik.http.routers.memos.rule=Host(`memos.yourdomain.com`)"
- "traefik.http.routers.memos.tls=true"
- "traefik.http.routers.memos.tls.certresolver=letsencrypt"
- "traefik.http.services.memos.loadbalancer.server.port=5230"
```
## Backup Strategy
```bash
# Backup Memos data
docker run --rm -v memos-data:/var/opt/memos -v $(pwd):/backup alpine tar czf /backup/memos-backup.tar.gz -C /var/opt/memos .
# Backup PostgreSQL database
docker exec memos-postgres pg_dump -U memos memos > memos-db-backup.sql
# Restore database
docker exec -i memos-postgres psql -U memos memos < memos-db-backup.sql
# Restore Memos data
docker run --rm -v memos-data:/var/opt/memos -v $(pwd):/backup alpine tar xzf /backup/memos-backup.tar.gz -C /var/opt/memos
```
## Performance Optimization
```yaml
# For better performance
environment:
- MEMOS_MODE=prod
- MEMOS_WORKER=4
- MEMOS_MAX_UPLOAD_SIZE=32MB
# Resource limits
deploy:
resources:
limits:
memory: 512M
cpus: '0.5'
reservations:
memory: 256M
cpus: '0.2'
```
## Security
- Change default credentials
- Use HTTPS in production
- Network access control
- Regular backups
- Monitor access logs
## API Usage
```bash
# Get all memos
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:5230/api/v1/memos
# Create memo
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"content":"Hello World"}' \
http://localhost:5230/api/v1/memos
# Search memos
curl -H "Authorization: Bearer YOUR_TOKEN" \
"http://localhost:5230/api/v1/memos?filter=tag:important"
```
## Mobile Apps
- **iOS**: Available on App Store
- **Android**: Available on Google Play
- **Web**: Progressive Web App (PWA)
## Integration Examples
### Daily Journal Template
```markdown
# Daily Journal - {{date}}
## Mood: 😊
## Today's Highlights
-
## Gratitude
-
## Tomorrow's Goals
-
## Notes
-
```
### Meeting Notes Template
```markdown
# Meeting - {{title}}
**Date**: {{date}}
**Attendees**:
**Duration**:
## Agenda
-
## Notes
-
## Action Items
- [ ]
## Follow-up
-
```
## Migration from Other Tools
### From Notion
1. Export pages as markdown
2. Import via API or manual copy
3. Reorganize with tags
### From Obsidian
1. Copy markdown files
2. Maintain folder structure with tags
3. Adjust image links
### From Google Keep
1. Export notes (if available)
2. Manual copy for most notes
3. Use tags for organization
## Troubleshooting
- **Database connection**: Check PostgreSQL configuration
- **Performance issues**: Monitor resource usage
- **Access problems**: Verify port and firewall settings
- **Data loss**: Restore from backup
## Maintenance
```bash
# Check logs
docker-compose logs -f memos
# Restart service
docker-compose restart memos
# Update image
docker-compose pull && docker-compose up -d
# Clean up old data
docker exec memos rm -rf /var/opt/memos/tmp/*
```
## Customization
### CSS Customization
```css
/* Add custom CSS in settings */
.memo-content {
font-family: 'Inter', sans-serif;
line-height: 1.6;
}
.tag {
background: #e3f2fd;
color: #1976d2;
}
```
### Custom Themes
- **Dark mode**: Built-in dark theme
- **Custom colors**: Configure in settings
- **Font sizes**: Adjustable in settings
## Best Practices
1. **Use tags consistently**: Create a tag system
2. **Daily reviews**: Review and organize notes daily
3. **Archive old notes**: Keep workspace clean
4. **Use templates**: Standardize common note types
5. **Regular backups**: Protect your data