110 lines
2.5 KiB
Markdown
110 lines
2.5 KiB
Markdown
# Lemmy Poster
|
|
|
|
A Laravel application for posting articles to Lemmy platforms.
|
|
|
|
## Docker Deployment
|
|
|
|
### Building the Image
|
|
|
|
```bash
|
|
docker build -t your-registry/lemmy-poster:latest .
|
|
docker push your-registry/lemmy-poster:latest
|
|
```
|
|
|
|
### Docker Compose
|
|
|
|
Create a `docker-compose.yml` file:
|
|
|
|
```yaml
|
|
services:
|
|
app-web:
|
|
image: your-registry/lemmy-poster:latest
|
|
command: ["web"]
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
- APP_ENV=production
|
|
- APP_KEY=${APP_KEY}
|
|
- DB_CONNECTION=mysql
|
|
- DB_HOST=mysql
|
|
- DB_PORT=3306
|
|
- DB_DATABASE=lemmy_poster
|
|
- DB_USERNAME=lemmy_user
|
|
- DB_PASSWORD=${DB_PASSWORD}
|
|
- QUEUE_CONNECTION=database
|
|
- LEMMY_INSTANCE=${LEMMY_INSTANCE}
|
|
- LEMMY_USERNAME=${LEMMY_USERNAME}
|
|
- LEMMY_PASSWORD=${LEMMY_PASSWORD}
|
|
- LEMMY_COMMUNITY=${LEMMY_COMMUNITY}
|
|
depends_on:
|
|
- mysql
|
|
volumes:
|
|
- storage_data:/var/www/html/storage/app
|
|
restart: unless-stopped
|
|
|
|
app-queue:
|
|
image: your-registry/lemmy-poster:latest
|
|
command: ["queue"]
|
|
environment:
|
|
- APP_ENV=production
|
|
- APP_KEY=${APP_KEY}
|
|
- DB_CONNECTION=mysql
|
|
- DB_HOST=mysql
|
|
- DB_PORT=3306
|
|
- DB_DATABASE=lemmy_poster
|
|
- DB_USERNAME=lemmy_user
|
|
- DB_PASSWORD=${DB_PASSWORD}
|
|
- QUEUE_CONNECTION=database
|
|
- LEMMY_INSTANCE=${LEMMY_INSTANCE}
|
|
- LEMMY_USERNAME=${LEMMY_USERNAME}
|
|
- LEMMY_PASSWORD=${LEMMY_PASSWORD}
|
|
- LEMMY_COMMUNITY=${LEMMY_COMMUNITY}
|
|
depends_on:
|
|
- mysql
|
|
volumes:
|
|
- storage_data:/var/www/html/storage/app
|
|
restart: unless-stopped
|
|
|
|
mysql:
|
|
image: mysql:8.0
|
|
environment:
|
|
- MYSQL_DATABASE=lemmy_poster
|
|
- MYSQL_USER=lemmy_user
|
|
- MYSQL_PASSWORD=${DB_PASSWORD}
|
|
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
|
|
volumes:
|
|
- mysql_data:/var/lib/mysql
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
mysql_data:
|
|
storage_data:
|
|
```
|
|
|
|
### Environment Variables
|
|
|
|
Create a `.env` file with:
|
|
|
|
```env
|
|
APP_KEY=your-app-key-here
|
|
DB_PASSWORD=your-db-password
|
|
DB_ROOT_PASSWORD=your-root-password
|
|
LEMMY_INSTANCE=your-lemmy-instance.com
|
|
LEMMY_USERNAME=your-lemmy-username
|
|
LEMMY_PASSWORD=your-lemmy-password
|
|
LEMMY_COMMUNITY=your-target-community
|
|
```
|
|
|
|
Generate the APP_KEY:
|
|
```bash
|
|
openssl rand -base64 32 | tr -d '='
|
|
```
|
|
|
|
### Deployment
|
|
|
|
1. Build and push the image
|
|
2. Copy the docker-compose.yml to your server
|
|
3. Create the .env file with your environment variables
|
|
4. Run: `docker-compose up -d`
|
|
|
|
The web interface will be available on port 8000, ready for CloudFlare tunnel configuration.
|