Initial commit of docker files.
This commit is contained in:
parent
2b74ae2021
commit
9b56f66c76
8 changed files with 115 additions and 0 deletions
7
.dockerignore
Normal file
7
.dockerignore
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
.env
|
||||||
|
.git
|
||||||
|
.gitignore
|
||||||
|
.travis.yml
|
||||||
|
.vscode
|
||||||
|
node_modules
|
||||||
|
test
|
4
.env
Normal file
4
.env
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
COMPOSE_CONVERT_WINDOWS_PATHS=1
|
||||||
|
XBS_API_HOSTNAME=xbsapi.yourdomain.org
|
||||||
|
XBS_DB_PASSWORD=xbsdbpass
|
||||||
|
XBS_DB_USERNAME=xbsdb
|
0
acme.json
Normal file
0
acme.json
Normal file
51
docker-compose.yml
Normal file
51
docker-compose.yml
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
version: "3.7"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
xbs-db-data:
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
container_name: "xbs-db"
|
||||||
|
environment:
|
||||||
|
- "MONGO_INITDB_DATABASE=xbrowsersync"
|
||||||
|
- "MONGO_INITDB_ROOT_PASSWORD=$XBS_DB_PASSWORD"
|
||||||
|
- "MONGO_INITDB_ROOT_USERNAME=$XBS_DB_USERNAME"
|
||||||
|
image: "mongo:4.0.4"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=false"
|
||||||
|
ports:
|
||||||
|
- "27017:27017"
|
||||||
|
restart: "always"
|
||||||
|
volumes:
|
||||||
|
- "xbs-db-data:/data/db"
|
||||||
|
- "./mongoconfig.js:/docker-entrypoint-initdb.d/mongoconfig.js"
|
||||||
|
api:
|
||||||
|
container_name: "xbs-api"
|
||||||
|
depends_on:
|
||||||
|
- "db"
|
||||||
|
environment:
|
||||||
|
- "XBROWSERSYNC_DB_PWD=$XBS_DB_PASSWORD"
|
||||||
|
- "XBROWSERSYNC_DB_USER=$XBS_DB_USERNAME"
|
||||||
|
image: "xbrowsersync-api:1.1.6"
|
||||||
|
labels:
|
||||||
|
- "traefik.frontend.rule=Host:$XBS_API_HOSTNAME"
|
||||||
|
- "traefik.port=8080"
|
||||||
|
restart: "always"
|
||||||
|
volumes:
|
||||||
|
- "./settings.json:/usr/src/api/config/settings.json"
|
||||||
|
reverse-proxy:
|
||||||
|
command: "--api --docker"
|
||||||
|
container_name: "xbs-reverse-proxy"
|
||||||
|
depends_on:
|
||||||
|
- "api"
|
||||||
|
image: traefik:1.7.5-alpine
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=false"
|
||||||
|
ports:
|
||||||
|
- "443:443"
|
||||||
|
- "80:80"
|
||||||
|
restart: "always"
|
||||||
|
volumes:
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||||
|
- "./acme.json:/acme.json"
|
||||||
|
- "./traefik.toml:/traefik.toml"
|
23
dockerfile
Normal file
23
dockerfile
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
FROM node:10.14.2-alpine
|
||||||
|
|
||||||
|
# Set environment variables
|
||||||
|
ENV XBROWSERSYNC_API_VERSION 1.1.6
|
||||||
|
ENV XBROWSERSYNC_API_PORT 8080
|
||||||
|
ENV XBROWSERSYNC_DB_USER $XBROWSERSYNC_DB_USER
|
||||||
|
ENV XBROWSERSYNC_DB_PWD $XBROWSERSYNC_DB_PWD
|
||||||
|
|
||||||
|
WORKDIR /usr/src/api
|
||||||
|
|
||||||
|
# Download release and unpack
|
||||||
|
RUN wget -q -O release.tar.gz https://github.com/xBrowserSync/API/archive/v$XBROWSERSYNC_API_VERSION.tar.gz \
|
||||||
|
&& tar -C . -xzf release.tar.gz \
|
||||||
|
&& rm release.tar.gz \
|
||||||
|
&& mv API-$XBROWSERSYNC_API_VERSION/* . \
|
||||||
|
&& rm -rf API-$XBROWSERSYNC_API_VERSION/
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
# Expose port and start api
|
||||||
|
EXPOSE $XBROWSERSYNC_API_PORT
|
||||||
|
CMD [ "node", "dist/api.js"]
|
2
mongoconfig.js
Normal file
2
mongoconfig.js
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
db.newsynclogs.createIndex( { "expiresAt": 1 }, { expireAfterSeconds: 0 } );
|
||||||
|
db.newsynclogs.createIndex( { "ipAddress": 1 } );
|
5
settings.json
Normal file
5
settings.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"db": {
|
||||||
|
"host": "db"
|
||||||
|
}
|
||||||
|
}
|
23
traefik.toml
Normal file
23
traefik.toml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
defaultEntryPoints = ["http", "https"]
|
||||||
|
|
||||||
|
[entryPoints]
|
||||||
|
[entryPoints.http]
|
||||||
|
address = ":80"
|
||||||
|
[entryPoints.http.redirect]
|
||||||
|
entryPoint = "https"
|
||||||
|
[entryPoints.https]
|
||||||
|
address = ":443"
|
||||||
|
[entryPoints.https.tls]
|
||||||
|
|
||||||
|
[retry]
|
||||||
|
|
||||||
|
[api]
|
||||||
|
dashboard = false
|
||||||
|
|
||||||
|
[acme]
|
||||||
|
email = "you@yourdomain.org"
|
||||||
|
storage = "acme.json"
|
||||||
|
entryPoint = "https"
|
||||||
|
onHostRule = true
|
||||||
|
[acme.httpChallenge]
|
||||||
|
entryPoint = "http"
|
Loading…
Reference in a new issue