Add lemmy/README.md
This commit is contained in:
parent
cccb441231
commit
a2917cfc46
1 changed files with 162 additions and 0 deletions
162
lemmy/README.md
Normal file
162
lemmy/README.md
Normal 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
|
Loading…
Reference in a new issue