mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-06-04 20:42:58 +00:00
small fix, don't worry about it
This commit is contained in:
@@ -0,0 +1,352 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user