Add lemmy/README.md

This commit is contained in:
HHF Technology 2024-12-05 15:06:58 +05:30
parent cccb441231
commit a2917cfc46

162
lemmy/README.md Normal file
View file

@ -0,0 +1,162 @@
# Complete Lemmy Setup Guide for Unraid
## Prerequisites
1. Create the following directory structure on your Unraid server:
```bash
/mnt/user/appdata/lemmy/
├── config/ # Lemmy configuration
├── postgres/ # PostgreSQL data
└── pictrs/ # Image storage
```
## Step 1: PostgreSQL Setup
1. Install the Lemmy-Postgres template
2. Configure these essential variables:
- POSTGRES_USER: `lemmy`
- POSTGRES_PASSWORD: `[choose a secure password]`
- POSTGRES_DB: `lemmy`
- Data Path: `/mnt/user/appdata/lemmy/postgres`
- Port: `5433` (or different if in use)
3. Start the container and verify it's running by checking logs
## Step 2: Pict-rs Setup
1. Install the Pict-rs template
2. Configure:
- API Key: `[generate a secure key]`
- Media Path: `/mnt/user/appdata/lemmy/pictrs`
3. Note down the API key for later use in Lemmy configuration
4. Start the container
## Step 3: Lemmy Server Setup
1. Install the Lemmy-Server template
2. Create `/mnt/user/appdata/lemmy/config/lemmy.hjson` with this content:
```hjson
{
hostname: "your_domain.com"
port: 8536
tls_enabled: false # Set to true if using HTTPS
# Database settings
database: {
host: "lemmy-postgres"
port: 5432
user: "lemmy"
password: "[your postgres password]"
database: "lemmy"
pool_size: 5
}
# Picture service
pictrs: {
url: "http://pict-rs:8080/"
api_key: "[your pictrs api key]"
}
# Rate limits
rate_limit: {
message: 180
message_per_second: 60
post: 50
post_per_second: 600
register: 20
register_per_second: 3600
image_upload: 6
image_upload_per_second: 3600
}
}
```
3. Configure:
- Config Path: `/mnt/user/appdata/lemmy/config`
- WebSocket Port: `8536`
4. Start the container
## Step 4: Lemmy UI Setup
1. Install the Lemmy-UI template
2. Configure:
- WebUI Port: `1236`
- Environment Variables:
- LEMMY_UI_LEMMY_INTERNAL_HOST: `lemmy-server:8536`
- LEMMY_UI_LEMMY_EXTERNAL_HOST: `your_domain.com` (or `localhost:1236` for local testing)
- LEMMY_UI_HTTPS: `false` (set to true if using HTTPS)
3. Start the container
## Step 5: Reverse Proxy (Optional but Recommended)
If you're using SWAG or another reverse proxy, add this configuration:
```nginx
location / {
proxy_pass http://lemmy-ui:1236;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /api {
proxy_pass http://lemmy-server:8536;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /pictrs {
proxy_pass http://pict-rs:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 20M;
}
```
## Verification Steps
1. Check all container logs for errors
2. Access the UI at `http://your_server_ip:1236`
3. Create an admin account (first account becomes admin)
4. Test image upload functionality
5. Verify WebSocket connection (realtime updates should work)
## Troubleshooting
1. Connection Issues:
- Verify all containers are running
- Check container logs for errors
- Ensure ports are not conflicting
- Verify network connectivity between containers
2. Database Issues:
- Check PostgreSQL logs
- Verify database credentials in lemmy.hjson
- Ensure database is properly initialized
3. Image Upload Issues:
- Verify Pict-rs API key matches in configuration
- Check Pict-rs logs
- Verify storage permissions
4. UI Issues:
- Clear browser cache
- Verify LEMMY_UI_LEMMY_INTERNAL_HOST setting
- Check browser console for errors
## Backup Considerations
Regular backup of these directories is recommended:
- `/mnt/user/appdata/lemmy/postgres/` (Database)
- `/mnt/user/appdata/lemmy/config/` (Configuration)
- `/mnt/user/appdata/lemmy/pictrs/` (Uploaded media)
## Security Recommendations
1. Use strong, unique passwords for:
- PostgreSQL database
- Pict-rs API key
- Admin account
2. Enable HTTPS if exposed to the internet
3. Regularly update all containers
4. Monitor logs for suspicious activity