Cleaning und FileRun hinzugefügt
This commit is contained in:
@@ -1,16 +0,0 @@
|
|||||||
version: "3.5"
|
|
||||||
|
|
||||||
services:
|
|
||||||
ecodms:
|
|
||||||
image: ecodms/allinone-18.09
|
|
||||||
container_name: ecodms
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- 17001:17001
|
|
||||||
- 17004:8080
|
|
||||||
- 17005:8180
|
|
||||||
volumes:
|
|
||||||
- ./data/ecodmsData:/srv/data
|
|
||||||
- ./data/scaninput:/srv/scaninput
|
|
||||||
- ./backup/ecodms-backup:/srv/backup
|
|
||||||
- ./backup/ecodms-restore:/srv/restore
|
|
||||||
8
filerun/.env.sample
Normal file
8
filerun/.env.sample
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#MySQL Datenbank
|
||||||
|
MYSQL_USER=changeMe
|
||||||
|
MYSQL_PASSWORD=changeMe
|
||||||
|
MYSQL_ROOT_PASSWORD=changeMe
|
||||||
|
|
||||||
|
NFS_SERVER=192.168.0.xxx # oder hostname oder Domain
|
||||||
|
PFAD_1=/Pfad/zum/Ordner/www
|
||||||
|
PFAD_2=/Pfad/zum/Ordner/energie
|
||||||
33
filerun/docker-compose.yml
Normal file
33
filerun/docker-compose.yml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
version: '2'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: mariadb:10.1
|
||||||
|
container_name: filerun_db
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||||
|
MYSQL_USER: ${MYSQL_USER}
|
||||||
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||||
|
MYSQL_DATABASE: filerun
|
||||||
|
volumes:
|
||||||
|
- ./db:/var/lib/mysql
|
||||||
|
|
||||||
|
filerun:
|
||||||
|
image: filerun/filerun
|
||||||
|
container_name: filerun_app
|
||||||
|
environment:
|
||||||
|
FR_DB_HOST: db
|
||||||
|
FR_DB_PORT: 3306
|
||||||
|
FR_DB_NAME: filerun
|
||||||
|
FR_DB_USER: ${MYSQL_USER}
|
||||||
|
FR_DB_PASS: ${MYSQL_PASSWORD}
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
links:
|
||||||
|
- db:db
|
||||||
|
ports:
|
||||||
|
- "8013:80"
|
||||||
|
volumes:
|
||||||
|
- ./html:/var/www/html
|
||||||
|
- ./user-files:/user-files
|
||||||
@@ -1 +0,0 @@
|
|||||||
PASSWORD=ChangeMe
|
|
||||||
@@ -1,154 +0,0 @@
|
|||||||
# Guacamole with docker-compose
|
|
||||||
This is a small documentation how to run a fully working **Apache Guacamole (incubating)** instance with docker (docker-compose). The goal of this project is to make it easy to test Guacamole.
|
|
||||||
|
|
||||||
## About Guacamole
|
|
||||||
Apache Guacamole (incubating) is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. It is called clientless because no plugins or client software are required. Thanks to HTML5, once Guacamole is installed on a server, all you need to access your desktops is a web browser.
|
|
||||||
|
|
||||||
It supports RDP, SSH, Telnet and VNC and is the fastest HTML5 gateway I know. Checkout the projects [homepage](https://guacamole.incubator.apache.org/) for more information.
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
You need a working **docker** installation and **docker-compose** running on your machine.
|
|
||||||
|
|
||||||
## Quick start
|
|
||||||
Clone the GIT repository and start guacamole:
|
|
||||||
|
|
||||||
~~~bash
|
|
||||||
git clone "https://github.com/boschkundendienst/guacamole-docker-compose.git"
|
|
||||||
cd guacamole-docker-compose
|
|
||||||
./prepare.sh
|
|
||||||
docker-compose up -d
|
|
||||||
~~~
|
|
||||||
|
|
||||||
Your guacamole server should now be available at `https://ip of your server:8443/`. The default username is `guacadmin` with password `guacadmin`.
|
|
||||||
|
|
||||||
## Details
|
|
||||||
To understand some details let's take a closer look at parts of the `docker-compose.yml` file:
|
|
||||||
|
|
||||||
### Networking
|
|
||||||
The following part of docker-compose.yml will create a network with name `guacnetwork_compose` in mode `bridged`.
|
|
||||||
~~~python
|
|
||||||
...
|
|
||||||
# networks
|
|
||||||
# create a network 'guacnetwork_compose' in mode 'bridged'
|
|
||||||
networks:
|
|
||||||
guacnetwork_compose:
|
|
||||||
driver: bridge
|
|
||||||
...
|
|
||||||
~~~
|
|
||||||
|
|
||||||
### Services
|
|
||||||
#### guacd
|
|
||||||
The following part of docker-compose.yml will create the guacd service. guacd is the heart of Guacamole which dynamically loads support for remote desktop protocols (called "client plugins") and connects them to remote desktops based on instructions received from the web application. The container will be called `guacd_compose` based on the docker image `guacamole/guacd` connected to our previously created network `guacnetwork_compose`. Additionally we map the 2 local folders `./drive` and `./record` into the container. We can use them later to map user drives and store recordings of sessions.
|
|
||||||
|
|
||||||
~~~python
|
|
||||||
...
|
|
||||||
services:
|
|
||||||
# guacd
|
|
||||||
guacd:
|
|
||||||
container_name: guacd_compose
|
|
||||||
image: guacamole/guacd
|
|
||||||
networks:
|
|
||||||
guacnetwork_compose:
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./drive:/drive:rw
|
|
||||||
- ./record:/record:rw
|
|
||||||
...
|
|
||||||
~~~
|
|
||||||
|
|
||||||
#### PostgreSQL
|
|
||||||
The following part of docker-compose.yml will create an instance of PostgreSQL using the official docker image. This image is highly configurable using environment variables. It will for example initialize a database if an initialization script is found in the folder `/docker-entrypoint-initdb.d` within the image. Since we map the local folder `./init` inside the container as `docker-entrypoint-initdb.d` we can initialize the database for guacamole using our own script (`./init/initdb.sql`). You can read more about the details of the official postgres image [here](http://).
|
|
||||||
|
|
||||||
~~~python
|
|
||||||
...
|
|
||||||
postgres:
|
|
||||||
container_name: postgres_guacamole_compose
|
|
||||||
environment:
|
|
||||||
PGDATA: /var/lib/postgresql/data/guacamole
|
|
||||||
POSTGRES_DB: guacamole_db
|
|
||||||
POSTGRES_PASSWORD: ChooseYourOwnPasswordHere1234
|
|
||||||
POSTGRES_USER: guacamole_user
|
|
||||||
image: postgres
|
|
||||||
networks:
|
|
||||||
guacnetwork_compose:
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./init:/docker-entrypoint-initdb.d:ro
|
|
||||||
- ./data:/var/lib/postgresql/data:rw
|
|
||||||
...
|
|
||||||
~~~
|
|
||||||
|
|
||||||
#### Guacamole
|
|
||||||
The following part of docker-compose.yml will create an instance of guacamole by using the docker image `guacamole` from docker hub. It is also highly configurable using environment variables. In this setup it is configured to connect to the previously created postgres instance using a username and password and the database `guacamole_db`. Port 8080 is only exposed locally! We will attach an instance of nginx for public facing of it in the next step.
|
|
||||||
|
|
||||||
~~~python
|
|
||||||
...
|
|
||||||
guacamole:
|
|
||||||
container_name: guacamole_compose
|
|
||||||
depends_on:
|
|
||||||
- guacd
|
|
||||||
- postgres
|
|
||||||
environment:
|
|
||||||
GUACD_HOSTNAME: guacd
|
|
||||||
POSTGRES_DATABASE: guacamole_db
|
|
||||||
POSTGRES_HOSTNAME: postgres
|
|
||||||
POSTGRES_PASSWORD: ChooseYourOwnPasswordHere1234
|
|
||||||
POSTGRES_USER: guacamole_user
|
|
||||||
image: guacamole/guacamole
|
|
||||||
links:
|
|
||||||
- guacd
|
|
||||||
networks:
|
|
||||||
guacnetwork_compose:
|
|
||||||
ports:
|
|
||||||
- 8080/tcp
|
|
||||||
restart: always
|
|
||||||
...
|
|
||||||
~~~
|
|
||||||
|
|
||||||
#### nginx
|
|
||||||
The following part of docker-compose.yml will create an instance of nginx that maps the public port 8443 to the internal port 443. The internal port 443 is then mapped to guacamole using the `./nginx.conf` and `./nginx/mysite.template` files. The container will use the previously generated (`prepare.sh`) self-signed certificate in `./nginx/ssl/` with `./nginx/ssl/self-ssl.key` and `./nginx/ssl/self.cert`.
|
|
||||||
|
|
||||||
~~~python
|
|
||||||
...
|
|
||||||
nginx:
|
|
||||||
container_name: nginx_guacamole_compose
|
|
||||||
restart: always
|
|
||||||
image: nginx
|
|
||||||
volumes:
|
|
||||||
- ./nginx/ssl/self.cert:/etc/nginx/ssl/self.cert:ro
|
|
||||||
- ./nginx/ssl/self-ssl.key:/etc/nginx/ssl/self-ssl.key:ro
|
|
||||||
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
||||||
- ./nginx/mysite.template:/etc/nginx/conf.d/default.conf:ro
|
|
||||||
ports:
|
|
||||||
- 8443:443
|
|
||||||
links:
|
|
||||||
- guacamole
|
|
||||||
networks:
|
|
||||||
guacnetwork_compose:
|
|
||||||
# run nginx
|
|
||||||
command: /bin/bash -c "nginx -g 'daemon off;'"
|
|
||||||
...
|
|
||||||
~~~
|
|
||||||
|
|
||||||
## prepare.sh
|
|
||||||
`prepare.sh` is a small script that creates `./init/initdb.sql` by downloading the docker image `guacamole/guacamole` and start it like this:
|
|
||||||
|
|
||||||
~~~bash
|
|
||||||
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres > ./init/initdb.sql
|
|
||||||
~~~
|
|
||||||
|
|
||||||
It creates the necessary database initialization file for postgres.
|
|
||||||
|
|
||||||
`prepare.sh` also creates the self-signed certificate `./nginx/ssl/self.cert` and the private key `./nginx/ssl/self-ssl.key` which are used
|
|
||||||
by nginx for https.
|
|
||||||
|
|
||||||
## reset.sh
|
|
||||||
To reset everything to the beginning, just run `./reset.sh`.
|
|
||||||
|
|
||||||
## WOL
|
|
||||||
|
|
||||||
Wake on LAN (WOL) does not work and I will not fix that because it is beyound the scope of this repo. But [zukkie777](https://github.com/zukkie777) who also filed [this issue](https://github.com/boschkundendienst/guacamole-docker-compose/issues/12) fixed it. You can read about it on the [Guacamole mailing list](http://apache-guacamole-general-user-mailing-list.2363388.n4.nabble.com/How-to-docker-composer-for-WOL-td9164.html)
|
|
||||||
|
|
||||||
**Disclaimer**
|
|
||||||
|
|
||||||
Downloading and executing scripts from the internet may harm your computer. Make sure to check the source of the scripts before executing them!
|
|
||||||
@@ -1,124 +0,0 @@
|
|||||||
####################################################################################
|
|
||||||
# docker-compose file for Apache Guacamole
|
|
||||||
# created by PCFreak 2017-06-28
|
|
||||||
#
|
|
||||||
# Apache Guacamole is a clientless remote desktop gateway. It supports standard
|
|
||||||
# protocols like VNC, RDP, and SSH. We call it clientless because no plugins or
|
|
||||||
# client software are required. Thanks to HTML5, once Guacamole is installed on
|
|
||||||
# a server, all you need to access your desktops is a web browser.
|
|
||||||
####################################################################################
|
|
||||||
#
|
|
||||||
# What does this file do?
|
|
||||||
#
|
|
||||||
# Using docker-compose it will:
|
|
||||||
#
|
|
||||||
# - create a network 'guacnetwork_compose' with the 'bridge' driver.
|
|
||||||
# - create a service 'guacd_compose' from 'guacamole/guacd' connected to 'guacnetwork'
|
|
||||||
# - create a service 'postgres_guacamole_compose' (1) from 'postgres' connected to 'guacnetwork'
|
|
||||||
# - create a service 'guacamole_compose' (2) from 'guacamole/guacamole/' conn. to 'guacnetwork'
|
|
||||||
# - create a service 'nginx_guacamole_compose' (3) from 'nginx' connected to 'guacnetwork'
|
|
||||||
#
|
|
||||||
# (1)
|
|
||||||
# DB-Init script is in './init/initdb.sql' it has been created executing
|
|
||||||
# 'docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres > ./init/initdb.sql'
|
|
||||||
# once.
|
|
||||||
# DATA-DIR is in './data'
|
|
||||||
# If you want to change the DB password change all lines with 'POSTGRES_PASSWORD:' and
|
|
||||||
# change it to your needs before first start.
|
|
||||||
# To start from scratch delete './data' dir completely
|
|
||||||
# './data' will hold all data after first start!
|
|
||||||
# The initdb.d scripts are only executed the first time the container is started
|
|
||||||
# (and the database files are empty). If the database files already exist then the initdb.d
|
|
||||||
# scripts are ignored (e.g. when you mount a local directory or when docker-compose saves
|
|
||||||
# the volume and reuses it for the new container).
|
|
||||||
#
|
|
||||||
# !!!!! MAKE SURE your folder './init' is executable (chmod +x ./init)
|
|
||||||
# !!!!! or 'initdb.sql' will be ignored!
|
|
||||||
#
|
|
||||||
# './data' will hold all data after first start!
|
|
||||||
#
|
|
||||||
# (2)
|
|
||||||
# Make sure you use the same value for 'POSTGRES_USER' and 'POSTGRES_PASSWORD'
|
|
||||||
# as configured under (1)
|
|
||||||
#
|
|
||||||
# (3)
|
|
||||||
# ./nginx/nginx.conf will be mapped read-only into the container at /etc/nginx/nginx.conf
|
|
||||||
# ./nginx/mysite.template will be mapped into the container at /etc/nginx/conf.d/mysite.template
|
|
||||||
# ./nginx/ssl will be mapped into the container at /etc/nginx/ssl
|
|
||||||
# At startup a self-signed certificate will be created. If you want to use your own certs
|
|
||||||
# just remove the part that generates the certs from the 'command' section and replace
|
|
||||||
# 'self-ssl.key' and 'self.cert' with your certificate.
|
|
||||||
# To debug nginx replace '&& nginx -g 'daemon off' with '&& nginx-debug -g 'daemon off'
|
|
||||||
# nginx will export port 8443 to the outside world, make sure that this port is reachable
|
|
||||||
# on your system from the "outside world". All other traffice is only internal.
|
|
||||||
#
|
|
||||||
# You could remove the entire 'nginx' service from this file if you want to use your own
|
|
||||||
# reverse proxy in front of guacamole. If doing so, make sure you change the line
|
|
||||||
# - 8080/tcp
|
|
||||||
# to - 8080:8080/tcp
|
|
||||||
# within the 'guacamole' service. This will expose the guacamole webinterface directly
|
|
||||||
# on port 8080 and you can use it for your own purposes.
|
|
||||||
# Do note, guacamole is available on :8080/guacamole, not /.
|
|
||||||
#
|
|
||||||
# !!!!! FOR INITAL SETUP (after git clone) run ./prepare.sh once
|
|
||||||
#
|
|
||||||
# !!!!! FOR A FULL RESET (WILL ERASE YOUR DATABASE, YOUR FILES, YOUR RECORDS AND CERTS) DO A
|
|
||||||
# !!!!! ./reset.sh
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# The initial login to the guacamole webinterface is:
|
|
||||||
#
|
|
||||||
# Username: guacadmin
|
|
||||||
# Password: guacadmin
|
|
||||||
#
|
|
||||||
# Make sure you change it immediately!
|
|
||||||
#
|
|
||||||
# version date comment
|
|
||||||
# 0.1 2017-06-28 initial release
|
|
||||||
# 0.2 2017-10-09 minor fixes + internal GIT push
|
|
||||||
# 0.3 2017-10-09 minor fixes + public GIT push
|
|
||||||
# 0.4 2019-08-14 creating of ssl certs now in prepare.sh
|
|
||||||
# simplified nginx startup commands
|
|
||||||
####################################################################################
|
|
||||||
|
|
||||||
version: '2.0'
|
|
||||||
|
|
||||||
services:
|
|
||||||
guacd:
|
|
||||||
container_name: guacd_compose
|
|
||||||
image: guacamole/guacd
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./drive:/drive:rw
|
|
||||||
- ./record:/record:rw
|
|
||||||
|
|
||||||
postgres:
|
|
||||||
container_name: postgres_guacamole_compose
|
|
||||||
environment:
|
|
||||||
PGDATA: /var/lib/postgresql/data/guacamole
|
|
||||||
POSTGRES_DB: guacamole_db
|
|
||||||
POSTGRES_PASSWORD: ${PASSWORD}
|
|
||||||
POSTGRES_USER: guacamole_user
|
|
||||||
image: postgres:13.4
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./init:/docker-entrypoint-initdb.d:ro
|
|
||||||
- ./data:/var/lib/postgresql/data:rw
|
|
||||||
|
|
||||||
guacamole:
|
|
||||||
container_name: guacamole_compose
|
|
||||||
depends_on:
|
|
||||||
- guacd
|
|
||||||
- postgres
|
|
||||||
environment:
|
|
||||||
GUACD_HOSTNAME: guacd
|
|
||||||
POSTGRES_DATABASE: guacamole_db
|
|
||||||
POSTGRES_HOSTNAME: postgres
|
|
||||||
POSTGRES_PASSWORD: ${PASSWORD}
|
|
||||||
POSTGRES_USER: guacamole_user
|
|
||||||
image: guacamole/guacamole
|
|
||||||
links:
|
|
||||||
- guacd
|
|
||||||
ports:
|
|
||||||
- 8091:8080/tcp
|
|
||||||
restart: always
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#MySQL Datenbank
|
|
||||||
MYSQL_USER=ChangeMe
|
|
||||||
MYSQL_PASS=ChangeMe
|
|
||||||
MYSQL_ROOT_PASS=ChangeMe
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
version: '2'
|
|
||||||
|
|
||||||
services:
|
|
||||||
db:
|
|
||||||
image: mariadb:latest
|
|
||||||
container_name: kanboard_db
|
|
||||||
command: --default-authentication-plugin=mysql_native_password
|
|
||||||
environment:
|
|
||||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASS}
|
|
||||||
- MYSQL_DATABASE=kanboard
|
|
||||||
- MYSQL_USER=${MYSQL_USER}
|
|
||||||
- MYSQL_PASSWORD={MYSQL_PASS}
|
|
||||||
volumes:
|
|
||||||
- ./db:/var/lib/mysql
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
kanboard:
|
|
||||||
image: kanboard/kanboard:latest
|
|
||||||
container_name: kanboard_app
|
|
||||||
ports:
|
|
||||||
- 8002:80
|
|
||||||
volumes:
|
|
||||||
- ./data:/var/www/app/data
|
|
||||||
- ./plugins:/var/www/app/plugins
|
|
||||||
- ./ssl:/etc/nginx/ssl
|
|
||||||
environment:
|
|
||||||
- DATABASE_HOST=db
|
|
||||||
- DATABASE_USER=${MYSQL_USER}
|
|
||||||
- DATABASE_PASSWORD={MYSQL_PASS}
|
|
||||||
- DATABASE_NAME=kanboard
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
links:
|
|
||||||
- db:db
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
NFS_SERVER=192.168.0.xxx # oder hostname oder Domain
|
|
||||||
PFAD=/Pfad/zum/Ordner
|
|
||||||
PFAD_2=/Pfad/zum/sanner_input_ordner
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
---
|
|
||||||
version: "2.1"
|
|
||||||
services:
|
|
||||||
papermerge:
|
|
||||||
image: ghcr.io/linuxserver/papermerge
|
|
||||||
container_name: papermerge
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
volumes:
|
|
||||||
- ./Configs:/config
|
|
||||||
- documents:/docs
|
|
||||||
- scanner_inbox:/data
|
|
||||||
# - ./Data:/data
|
|
||||||
ports:
|
|
||||||
- 8010:8000
|
|
||||||
depends_on:
|
|
||||||
- papermerge-mariadb
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
papermerge-mariadb:
|
|
||||||
image: linuxserver/mariadb:latest
|
|
||||||
container_name: papermerge-mariadb
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
volumes:
|
|
||||||
- ./Database:/config
|
|
||||||
restart: always
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
documents:
|
|
||||||
name: documents
|
|
||||||
driver: local
|
|
||||||
driver_opts:
|
|
||||||
type: nfs
|
|
||||||
o: addr=${NFS_SERVER},rw
|
|
||||||
device: ":${PFAD_docs}"
|
|
||||||
scanner_inbox:
|
|
||||||
name: scanner_inbox
|
|
||||||
driver: local
|
|
||||||
driver_opts:
|
|
||||||
type: nfs
|
|
||||||
o: addr=${NFS_SERVER},rw
|
|
||||||
device: ":${PFAD_inbox}"
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
version: '3.3'
|
|
||||||
services:
|
|
||||||
truecommand:
|
|
||||||
image: ixsystems/truecommand
|
|
||||||
container_name: truecommand
|
|
||||||
ports:
|
|
||||||
- '8090:80'
|
|
||||||
- '8093:443'
|
|
||||||
environment:
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
volumes:
|
|
||||||
- './data:/data'
|
|
||||||
restart: unless-stopped
|
|
||||||
Reference in New Issue
Block a user