Added support for Docker, Docker-Compose
- updated config.js template to support environment variables
This commit is contained in:
parent
1c76daa166
commit
734b11c926
|
@ -0,0 +1 @@
|
||||||
|
.gitignore
|
|
@ -0,0 +1,15 @@
|
||||||
|
# Use LTS nodejs base image
|
||||||
|
FROM node:14.15.1-alpine
|
||||||
|
|
||||||
|
# video support dependency
|
||||||
|
RUN apk add ffmpeg
|
||||||
|
|
||||||
|
# install npm dependencies and copy project
|
||||||
|
WORKDIR /teddit
|
||||||
|
COPY package.json /teddit/
|
||||||
|
COPY package-lock.json /teddit/
|
||||||
|
RUN npm install --no-optional
|
||||||
|
COPY config.js.template /teddit/config.js
|
||||||
|
COPY . /teddit/
|
||||||
|
|
||||||
|
CMD npm start
|
10
README.md
10
README.md
|
@ -48,6 +48,16 @@ Community instances:
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
Using [`docker-compose`](https://github.com/docker/compose):
|
||||||
|
```bash
|
||||||
|
docker-compose build
|
||||||
|
docker-compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manual
|
||||||
|
|
||||||
1. Install [node.js](https://nodejs.org/en/)
|
1. Install [node.js](https://nodejs.org/en/)
|
||||||
1. It's highly recommended that you install [redis-server](https://redis.io/) because it works as a cache for Reddit API calls. If you want to support videos, install [ffmpeg](https://ffmpeg.org/)\
|
1. It's highly recommended that you install [redis-server](https://redis.io/) because it works as a cache for Reddit API calls. If you want to support videos, install [ffmpeg](https://ffmpeg.org/)\
|
||||||
For example:\
|
For example:\
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
const config = {
|
const config = {
|
||||||
domain: '127.0.0.1', // Or for example 'teddit.net'
|
domain: process.env.DOMAIN || '127.0.0.1', // Or for example 'teddit.net'
|
||||||
reddit_app_id: 'H6-HjZ5pUPjaFQ', // You should obtain your own Reddit app ID. For testing purposes it's okay to use this project's default app ID. Create your Reddit app here: https://old.reddit.com/prefs/apps/. Make sure to create an "installed app" type of app.
|
reddit_app_id: process.env.REDDIT_APP_ID || 'H6-HjZ5pUPjaFQ', // You should obtain your own Reddit app ID. For testing purposes it's okay to use this project's default app ID. Create your Reddit app here: https://old.reddit.com/prefs/apps/. Make sure to create an "installed app" type of app.
|
||||||
cert_dir: '', // For example '/home/teddit/letsencrypt/live/teddit.net', if you are using https. No trailing slash.
|
cert_dir: process.env.CERT_DIR || '', // For example '/home/teddit/letsencrypt/live/teddit.net', if you are using https. No trailing slash.
|
||||||
video_enabled: true,
|
video_enabled: process.env.VIDEO_ENABLED !== "true" || true,
|
||||||
redis_enabled: true, // If disabled, does not cache Reddit API calls
|
redis_enabled: process.env.REDIS_ENABLED !== "true" || true, // If disabled, does not cache Reddit API calls
|
||||||
redis_host: '127.0.0.1',
|
redis_host: process.env.REDIS_HOST || '127.0.0.1',
|
||||||
redis_port: 6379,
|
redis_port: process.env.REDIS_PORT || 6379,
|
||||||
ssl_port: 8088,
|
ssl_port: process.env.SSL_PORT || 8088,
|
||||||
nonssl_port: 8080,
|
nonssl_port: process.env.NONSSL_PORT || 8080,
|
||||||
listen_address: '0.0.0.0',
|
listen_address: process.env.LISTEN_ADDRESS || '0.0.0.0',
|
||||||
https_enabled: false,
|
https_enabled: process.env.HTTPS_ENABLED === "true" || false,
|
||||||
redirect_http_to_https: false,
|
redirect_http_to_https: process.env.REDIRECT_HTTP_TO_HTTPS === "true" || false,
|
||||||
redirect_www: false,
|
redirect_www: process.env.REDIRECT_WWW === "true" || false,
|
||||||
use_compression: true,
|
use_compression: process.env.USE_COMPRESSION !== "true" || true,
|
||||||
use_view_cache: false,
|
use_view_cache: process.env.USE_VIEW_CACHE === "true" || false,
|
||||||
use_helmet: false, // Recommended to be true when using https
|
use_helmet: process.env.USE_HELMET === "true" || false, // Recommended to be true when using https
|
||||||
use_helmet_hsts: false, // Recommended to be true when using https
|
use_helmet_hsts: process.env.USE_HELMET_HSTS === "true" || false, // Recommended to be true when using https
|
||||||
trust_proxy: false, // Enable trust_proxy if you are using reverse proxy like nginx
|
trust_proxy: process.env.TRUST_PROXY === "true" || false, // Enable trust_proxy if you are using reverse proxy like nginx
|
||||||
trust_proxy_address: '127.0.0.1',
|
trust_proxy_address: process.env.TRUST_PROXY_ADDRESS || '127.0.0.1',
|
||||||
setexs: {
|
setexs: {
|
||||||
/**,
|
/**,
|
||||||
* Redis cache expiration values (in seconds).
|
* Redis cache expiration values (in seconds).
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
redis:
|
||||||
|
image: redis:6.0.9-alpine3.12
|
||||||
|
command: redis-server
|
||||||
|
environment:
|
||||||
|
- REDIS_REPLICATION_MODE=master
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
networks:
|
||||||
|
- teddit_net
|
||||||
|
web:
|
||||||
|
build: .
|
||||||
|
environment:
|
||||||
|
- REDIS_HOST=redis
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
networks:
|
||||||
|
- teddit_net
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
networks:
|
||||||
|
teddit_net:
|
Loading…
Reference in New Issue