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