Some fixes for the docker build.

- Messed with readme.
- They needed to be `.env`, not `env`.
- Leaving the nginx file there, but extracting it out of the main setup. Ppl might use apache, or none at all.
- Docker 3.3 doesn't work with the DB health check unfortunately, so I changed that back to 2.4.
- Changed the env in the docker folder so it doesn't need to be edited, someone could just pull this and start it up if they just wanna test it.
pull/722/head
Dessalines 5 years ago
parent 06a9417671
commit 431210025d

@ -28,7 +28,7 @@ Front Page|Post
- Open source, [AGPL License](/LICENSE).
- Self hostable, easy to deploy.
- Comes with [Docker](#docker).
- Comes with [Docker](#docker), [Ansible](#ansible).
- Live-updating Comment threads.
- Full vote scores `(+/-)` like old reddit.
- Moderation abilities.
@ -64,51 +64,42 @@ Made with [Rust](https://www.rust-lang.org), [Actix](https://actix.rs/), [Infern
## Install
### Ansible (recommended)
### Docker
First, you need to [install Ansible on your local computer](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html),
eg using `sudo apt install ansible`, or the equivalent for you platform.
Then run the following commands on your local computer:
```bash
git clone https://github.com/dessalines/lemmy.git
cd lemmy/ansible/
cp inventory.example inventory
nano inventory # enter your server, domain, contact email
ansible-playbook lemmy.yml
```
### Manual
Make sure you have both docker and docker-compose installed.
Make sure you have both docker and docker-compose(>=`1.24.0`) installed.
```
mkdir lemmy/
cd lemmy/
wget https://raw.githubusercontent.com/dessalines/lemmy/master/docker/prod/docker-compose.yml
wget https://raw.githubusercontent.com/dessalines/lemmy/master/docker/prod/env -O .env
wget https://raw.githubusercontent.com/dessalines/lemmy/master/docker/prod/nginx.conf
# you need to edit .env and nginx.conf to replace the indicated {{ variables }}
sudo mv nginx.conf /etc/nginx/sites-enabled/lemmy.conf
# Edit the .env for custom passwords
docker-compose up -d
```
and goto http://localhost:8536
### Nginx Config
[A sample nginx config](/docker/prod/nginx.conf), could be setup with:
```
location / {
rewrite (\/(user|u|inbox|post|community|c|login|search|sponsors|communities|modlog|home)+) /static/index.html break;
proxy_pass http://0.0.0.0:8536;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
wget https://raw.githubusercontent.com/dessalines/lemmy/master/docker/prod/nginx.conf
# Replace the {{ vars }}
sudo mv nginx.conf /etc/nginx/sites-enabled/lemmy.conf
```
### Ansible
First, you need to [install Ansible on your local computer](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html),
eg using `sudo apt install ansible`, or the equivalent for you platform.
Then run the following commands on your local computer:
```bash
git clone https://github.com/dessalines/lemmy.git
cd lemmy/ansible/
cp inventory.example inventory
nano inventory # enter your server, domain, contact email
ansible-playbook lemmy.yml
```
## Develop

@ -0,0 +1,4 @@
DOMAIN=my_domain
DATABASE_PASSWORD=password
DATABASE_URL=postgres://lemmy:password@lemmy_db:5432/lemmy
JWT_SECRET=changeme

@ -5,13 +5,13 @@ services:
image: postgres:12-alpine
restart: always
environment:
POSTGRES_USER: rrr
POSTGRES_PASSWORD: rrr
POSTGRES_DB: rrr
- POSTGRES_USER=lemmy
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=lemmy
volumes:
- lemmy_db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U rrr"]
test: ["CMD-SHELL", "pg_isready -U lemmy"]
interval: 5s
timeout: 5s
retries: 20
@ -22,10 +22,10 @@ services:
ports:
- "8536:8536"
environment:
LEMMY_FRONT_END_DIR: /app/dist
DATABASE_URL: postgres://rrr:rrr@lemmy_db:5432/rrr
JWT_SECRET: changeme
HOSTNAME: rrr
- LEMMY_FRONT_END_DIR=/app/dist
- DATABASE_URL=${DATABASE_URL}
- JWT_SECRET=${JWT_SECRET}
- HOSTNAME=${DOMAIN}
restart: always
depends_on:
lemmy_db:

@ -0,0 +1,4 @@
DOMAIN=my_domain
DATABASE_PASSWORD=password
DATABASE_URL=postgres://lemmy:password@lemmy_db:5432/lemmy
JWT_SECRET=changeme

@ -1,8 +1,7 @@
version: "3.3"
version: '2.4'
services:
db:
lemmy_db:
image: postgres:12-alpine
restart: always
environment:
@ -10,15 +9,14 @@ services:
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=lemmy
volumes:
- ./volumes/db:/var/lib/postgresql/data
- lemmy_db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U lemmy"]
interval: 5s
timeout: 5s
retries: 20
lemmy:
image: dessalines/lemmy:v0.0.7 .3
image: dessalines/lemmy:v0.0.7.3
restart: always
ports:
- "8536:8536"
@ -27,5 +25,9 @@ services:
- DATABASE_URL=${DATABASE_URL}
- JWT_SECRET=${JWT_SECRET}
- HOSTNAME=${DOMAIN}
restart: always
depends_on:
- db
lemmy_db:
condition: service_healthy
volumes:
lemmy_db:

@ -1,4 +0,0 @@
DOMAIN={{your domain}}
DATABASE_PASSWORD={{a random password for postgres}}
DATABASE_URL=postgres://lemmy:{{ the same postgres password again }}@db:5432/lemmy
JWT_SECRET={{ a random password for jwt}}
Loading…
Cancel
Save