Compare commits
34 Commits
c308b49eae
...
main
Author | SHA1 | Date | |
---|---|---|---|
ab7521e826 | |||
fddcc6716f | |||
39ccbef31c | |||
41e87d2653 | |||
75574435d3 | |||
7cfc5150e8 | |||
5d4913a32d | |||
192e5f38f4 | |||
180eb849b2 | |||
582ba615e2 | |||
4f41d22d02 | |||
ab18fc2e13 | |||
fd8e0a5175 | |||
16ee189b50 | |||
b5c4c69861 | |||
9fd6989757 | |||
2c84f9cbdc | |||
0f28da4eb0 | |||
58bf8d1657 | |||
3bd2c3542a | |||
ab0c393ec3 | |||
|
e37f830e85 | ||
|
d02ecd4917 | ||
|
ec0851c6cd | ||
|
a0bb8f2d1e | ||
|
5ec489e0e0 | ||
8167183686 | |||
|
e0b870a4bf | ||
2650556d69 | |||
d8c0f873db | |||
0bc8f9df49 | |||
0505d147d7 | |||
|
5dce63b18f | ||
|
821c896006 |
11
glpi/.env
11
glpi/.env
@@ -0,0 +1,11 @@
|
|||||||
|
TZ: Europe/Berlin
|
||||||
|
GLPI_LANG: de_DE
|
||||||
|
MARIADB_HOST: glpi-db
|
||||||
|
MARIADB_PORT: 3306
|
||||||
|
MARIADB_DATABASE: glpi
|
||||||
|
MARIADB_USER: glpi-user
|
||||||
|
MARIADB_PASSWORD: glpi-pass
|
||||||
|
MARIADB_ROOT_PASSWORD: glpi-root-pass
|
||||||
|
FQDN: it.ostrach.tld
|
||||||
|
ADMINEMAIL: user@hochvogel.de
|
||||||
|
ORGANIZATION: OstrachHELP
|
||||||
|
4
glpi/.gitignore
vendored
Normal file
4
glpi/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
./volumes/glpi-files/**
|
||||||
|
./volumes/glpi-nginx/**
|
||||||
|
./volumes/glpi-plugins/**
|
||||||
|
./volumes/mariadb/**
|
11
glpi/GLPI10/.env
Normal file
11
glpi/GLPI10/.env
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
TZ: Europe/Berlin
|
||||||
|
GLPI_LANG: de_DE
|
||||||
|
MARIADB_HOST: glpi-db
|
||||||
|
MARIADB_PORT: 3306
|
||||||
|
MARIADB_DATABASE: glpi
|
||||||
|
MARIADB_USER: glpi-user
|
||||||
|
MARIADB_PASSWORD: glpi-pass
|
||||||
|
MARIADB_ROOT_PASSWORD: glpi-root-pass
|
||||||
|
FQDN: it.ostrach.tld
|
||||||
|
ADMINEMAIL: user@foo.bar
|
||||||
|
ORGANIZATION: "My Organization"
|
BIN
glpi/GLPI10/GLPI-Agent-1.5-x64.msi
Normal file
BIN
glpi/GLPI10/GLPI-Agent-1.5-x64.msi
Normal file
Binary file not shown.
BIN
glpi/GLPI10/GLPI-Agent-1.5-x86.msi
Normal file
BIN
glpi/GLPI10/GLPI-Agent-1.5-x86.msi
Normal file
Binary file not shown.
3
glpi/GLPI10/console-wrapper.sh
Normal file
3
glpi/GLPI10/console-wrapper.sh
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
docker compose exec glpi ./bin/console $1 $2 $3 $4 $5
|
49
glpi/GLPI10/docker-compose.yml
Normal file
49
glpi/GLPI10/docker-compose.yml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
version: "3.5"
|
||||||
|
services:
|
||||||
|
mariadb:
|
||||||
|
image: mariadb:latest
|
||||||
|
container_name: glpi-db
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ./volumes/mariadb:/var/lib/mysql:rw
|
||||||
|
environment:
|
||||||
|
MARIADB_DATABASE: ${MARIADB_DATABASE}
|
||||||
|
MARIADB_USER: ${MARIADB_USER}
|
||||||
|
MARIADB_PASSWORD: ${MARIADB_PASSWORD}
|
||||||
|
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
|
||||||
|
TZ: ${TZ}
|
||||||
|
# ports:
|
||||||
|
# - 3306:3306
|
||||||
|
networks:
|
||||||
|
- glpi-backend
|
||||||
|
glpi:
|
||||||
|
image: ghcr.io/glpi-project/glpi-nightly:10.0-bugfixes
|
||||||
|
container_name: glpi-app
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ./volumes/glpi-config:/var/glpi/config:rw
|
||||||
|
- ./volumes/glpi-files:/var/glpi/files:rw
|
||||||
|
- ./volumes/glpi-plugins:/var/www/glpi/plugins:rw
|
||||||
|
environment:
|
||||||
|
MARIADB_HOST: ${MARIADB_HOST}
|
||||||
|
MARIADB_PORT: ${MARIADB_PORT}
|
||||||
|
MARIADB_DATABASE: ${MARIADB_DATABASE}
|
||||||
|
MARIADB_USER: ${MARIADB_USER}
|
||||||
|
MARIADB_PASSWORD: ${MARIADB_PASSWORD}
|
||||||
|
GLPI_LANG: ${GLPI_LANG}
|
||||||
|
VERSION: "10.0"
|
||||||
|
PLUGINS: "all"
|
||||||
|
TIMEZONE: ${TZ}
|
||||||
|
FQDN: ${FQDN}
|
||||||
|
ADMINEMAIL: ${ADMINEMAIL}
|
||||||
|
ORGANIZATION: ${ORGANIZATION}
|
||||||
|
depends_on:
|
||||||
|
- mariadb
|
||||||
|
ports:
|
||||||
|
- 8075:80
|
||||||
|
networks:
|
||||||
|
- glpi-frontend
|
||||||
|
- glpi-backend
|
||||||
|
networks:
|
||||||
|
glpi-frontend:
|
||||||
|
glpi-backend:
|
BIN
glpi/GLPI10/glpi-10.0.10.tgz
Normal file
BIN
glpi/GLPI10/glpi-10.0.10.tgz
Normal file
Binary file not shown.
BIN
glpi/GLPI10/glpi-agent-1.5-x64.zip
Normal file
BIN
glpi/GLPI10/glpi-agent-1.5-x64.zip
Normal file
Binary file not shown.
BIN
glpi/GLPI10/glpi-agent-1.5-x86.zip
Normal file
BIN
glpi/GLPI10/glpi-agent-1.5-x86.zip
Normal file
Binary file not shown.
BIN
glpi/GLPI10/glpi-glpiinventory-1.3.4.tar.bz2
Normal file
BIN
glpi/GLPI10/glpi-glpiinventory-1.3.4.tar.bz2
Normal file
Binary file not shown.
@@ -1,17 +1,17 @@
|
|||||||
version: "3.5"
|
version: "3.5"
|
||||||
services:
|
services:
|
||||||
mariadb-glpi:
|
mariadb:
|
||||||
image: fametec/glpi:mariadb
|
image: fametec/glpi:mariadb
|
||||||
container_name: glpi-db
|
container_name: glpi-db
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- ./volumes/mariadb:/var/lib/mysql:rw
|
- ./volumes/mariadb:/var/lib/mysql:rw
|
||||||
environment:
|
environment:
|
||||||
MYSQL_DATABASE: glpi
|
MARIADB_DATABASE: ${MARIADB_DATABASE}
|
||||||
MYSQL_USER: glpi-user
|
MARIADB_USER: ${MARIADB_USER}
|
||||||
MYSQL_PASSWORD: glpi-pass
|
MARIADB_PASSWORD: ${MARIADB_PASSWORD}
|
||||||
MYSQL_RANDOM_ROOT_PASSWORD: 1
|
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
|
||||||
TZ: Europe/Berlin
|
TZ: ${TZ}
|
||||||
# ports:
|
# ports:
|
||||||
# - 3306:3306
|
# - 3306:3306
|
||||||
networks:
|
networks:
|
||||||
@@ -24,20 +24,20 @@ services:
|
|||||||
- ./volumes/glpi-files:/var/www/html/files:rw
|
- ./volumes/glpi-files:/var/www/html/files:rw
|
||||||
- ./volumes/glpi-plugins:/var/www/html/plugins:rw
|
- ./volumes/glpi-plugins:/var/www/html/plugins:rw
|
||||||
environment:
|
environment:
|
||||||
GLPI_LANG: de_DE
|
MARIADB_HOST: ${MARIADB_HOST}
|
||||||
MARIADB_HOST: mariadb-glpi
|
MARIADB_PORT: ${MARIADB_PORT}
|
||||||
MARIADB_PORT: 3306
|
MARIADB_DATABASE: ${MARIADB_DATABASE}
|
||||||
MARIADB_DATABASE: glpi
|
MARIADB_USER: ${MARIADB_USER}
|
||||||
MARIADB_USER: glpi-user
|
MARIADB_PASSWORD: ${MARIADB_PASSWORD}
|
||||||
MARIADB_PASSWORD: glpi-pass
|
GLPI_LANG: ${GLPI_LANG}
|
||||||
VERSION: "9.5.6"
|
VERSION: "9.5.6"
|
||||||
PLUGINS: "all"
|
PLUGINS: "all"
|
||||||
TIMEZONE: Europe/Berlin
|
TIMEZONE: ${TZ}
|
||||||
FQDN: it.ostrach.tld
|
FQDN: ${FQDN}
|
||||||
ADMINEMAIL: user@hochvogel.de
|
ADMINEMAIL: ${ADMINEMAIL}
|
||||||
ORGANIZATION: OstrachHELP
|
ORGANIZATION: ${ORGANIZATION}
|
||||||
depends_on:
|
depends_on:
|
||||||
- mariadb-glpi
|
- mariadb
|
||||||
ports:
|
ports:
|
||||||
- 8075:80
|
- 8075:80
|
||||||
networks:
|
networks:
|
||||||
@@ -55,26 +55,17 @@ services:
|
|||||||
- ./volumes/glpi-files:/var/www/html/files:rw
|
- ./volumes/glpi-files:/var/www/html/files:rw
|
||||||
- ./volumes/glpi-plugins:/var/www/html/plugins:rw
|
- ./volumes/glpi-plugins:/var/www/html/plugins:rw
|
||||||
depends_on:
|
depends_on:
|
||||||
- mariadb-glpi
|
- mariadb
|
||||||
environment:
|
environment:
|
||||||
MARIADB_HOST: mariadb-glpi
|
MARIADB_HOST: ${MARIADB_HOST}
|
||||||
MARIADB_PORT: 3306
|
MARIADB_PORT: ${MARIADB_PORT}
|
||||||
MARIADB_DATABASE: glpi
|
MARIADB_DATABASE: ${MARIADB_DATABASE}
|
||||||
MARIADB_USER: glpi-user
|
MARIADB_USER: ${MARIADB_USER}
|
||||||
MARIADB_PASSWORD: glpi-pass
|
MARIADB_PASSWORD: ${MARIADB_PASSWORD}
|
||||||
networks:
|
networks:
|
||||||
- glpi-backend
|
- glpi-backend
|
||||||
#
|
#
|
||||||
# VOLUMES
|
|
||||||
#
|
|
||||||
#volumes:
|
|
||||||
# glpi-volume:
|
|
||||||
# glpi-volume-files:
|
|
||||||
# glpi-volume-plugins:
|
|
||||||
# mariadb-glpi-volume:
|
|
||||||
#
|
|
||||||
# NETWORKS
|
# NETWORKS
|
||||||
#
|
|
||||||
networks:
|
networks:
|
||||||
glpi-frontend:
|
glpi-frontend:
|
||||||
glpi-backend:
|
glpi-backend:
|
||||||
|
BIN
glpi/fusioninventory-9.5+4.2.tar.bz2
Normal file
BIN
glpi/fusioninventory-9.5+4.2.tar.bz2
Normal file
Binary file not shown.
@@ -0,0 +1,6 @@
|
|||||||
|
TZ=Europe/Berlin
|
||||||
|
IPAM_DATABASE_WEBHOST=%
|
||||||
|
SCAN_INTERVAL=1h
|
||||||
|
MARIADB_HOST=ipam_db
|
||||||
|
MARIADB_ROOT_PASSWORD=IPAMrootpwd
|
||||||
|
|
||||||
|
76
ipam/Dockerfile
Normal file
76
ipam/Dockerfile
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
FROM php:7.2-apache
|
||||||
|
MAINTAINER Pierre Cheynier <pierre.cheynier@gmail.com>
|
||||||
|
|
||||||
|
ENV PHPIPAM_SOURCE https://github.com/phpipam/phpipam/
|
||||||
|
ARG PHPIPAM_VERSION=1.5.1
|
||||||
|
ENV PHPMAILER_SOURCE https://github.com/PHPMailer/PHPMailer/
|
||||||
|
ARG PHPMAILER_VERSION=6.7.1
|
||||||
|
ENV PHPSAML_SOURCE https://github.com/onelogin/php-saml/
|
||||||
|
ARG PHPSAML_VERSION=3.4.1
|
||||||
|
ENV WEB_REPO /var/www/html
|
||||||
|
|
||||||
|
# Install required deb packages
|
||||||
|
RUN sed -i /etc/apt/sources.list -e 's/$/ non-free'/ && \
|
||||||
|
apt-get update && apt-get -y upgrade && \
|
||||||
|
rm /etc/apt/preferences.d/no-debian-php && \
|
||||||
|
apt-get install -y libcurl4-gnutls-dev libgmp-dev libmcrypt-dev libfreetype6-dev libjpeg-dev libpng-dev libldap2-dev libsnmp-dev snmp-mibs-downloader iputils-ping && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Install required packages and files required for snmp
|
||||||
|
RUN mkdir -p /var/lib/mibs/ietf && \
|
||||||
|
curl -sL https://github.com/cisco/cisco-mibs/raw/main/v2/CISCO-SMI.my -o /var/lib/mibs/ietf/CISCO-SMI.txt && \
|
||||||
|
curl -sL https://github.com/cisco/cisco-mibs/raw/main/v2/CISCO-TC.my -o /var/lib/mibs/ietf/CISCO-TC.txt && \
|
||||||
|
curl -sL https://github.com/cisco/cisco-mibs/raw/main/v2/CISCO-VTP-MIB.my -o /var/lib/mibs/ietf/CISCO-VTP-MIB.txt && \
|
||||||
|
curl -sL https://github.com/cisco/cisco-mibs/raw/main/v2/MPLS-VPN-MIB.my -o /var/lib/mibs/ietf/MPLS-VPN-MIB.txt
|
||||||
|
|
||||||
|
# Configure apache and required PHP modules
|
||||||
|
RUN docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \
|
||||||
|
docker-php-ext-install mysqli && \
|
||||||
|
docker-php-ext-configure gd --with-freetype-dir=/usr/include/freetype2 --with-png-dir=/usr/include --with-jpeg-dir=/usr/include && \
|
||||||
|
docker-php-ext-install gd && \
|
||||||
|
docker-php-ext-install curl && \
|
||||||
|
docker-php-ext-install json && \
|
||||||
|
docker-php-ext-install snmp && \
|
||||||
|
docker-php-ext-install sockets && \
|
||||||
|
docker-php-ext-install pdo_mysql && \
|
||||||
|
docker-php-ext-install gettext && \
|
||||||
|
ln -s /usr/include/$(uname -m)-linux-gnu/gmp.h /usr/include/gmp.h && \
|
||||||
|
docker-php-ext-configure gmp --with-gmp=/usr/include/$(uname -m)-linux-gnu && \
|
||||||
|
docker-php-ext-install gmp && \
|
||||||
|
docker-php-ext-install pcntl && \
|
||||||
|
docker-php-ext-configure ldap --with-libdir=lib/$(uname -m)-linux-gnu && \
|
||||||
|
docker-php-ext-install ldap && \
|
||||||
|
pecl install mcrypt-1.0.1 && \
|
||||||
|
docker-php-ext-enable mcrypt && \
|
||||||
|
echo ". /etc/environment" >> /etc/apache2/envvars && \
|
||||||
|
a2enmod rewrite
|
||||||
|
|
||||||
|
COPY php.ini /usr/local/etc/php/
|
||||||
|
|
||||||
|
# Copy phpipam sources to web dir
|
||||||
|
ADD ${PHPIPAM_SOURCE}/archive/v${PHPIPAM_VERSION}.tar.gz /tmp/
|
||||||
|
RUN tar -xzf /tmp/v${PHPIPAM_VERSION}.tar.gz -C ${WEB_REPO}/ --strip-components=1
|
||||||
|
# Copy referenced submodules into the right directory
|
||||||
|
ADD ${PHPMAILER_SOURCE}/archive/v${PHPMAILER_VERSION}.tar.gz /tmp/
|
||||||
|
RUN tar -xzf /tmp/v${PHPMAILER_VERSION}.tar.gz -C ${WEB_REPO}/functions/PHPMailer/ --strip-components=1
|
||||||
|
ADD ${PHPSAML_SOURCE}/archive/refs/tags/${PHPSAML_VERSION}.tar.gz /tmp/
|
||||||
|
RUN tar -xzf /tmp/${PHPSAML_VERSION}.tar.gz -C ${WEB_REPO}/functions/php-saml/ --strip-components=1
|
||||||
|
|
||||||
|
# Use system environment variables into config.php
|
||||||
|
ENV PHPIPAM_BASE /
|
||||||
|
RUN cp ${WEB_REPO}/config.dist.php ${WEB_REPO}/config.php && \
|
||||||
|
chown www-data /var/www/html/app/admin/import-export/upload && \
|
||||||
|
chown www-data /var/www/html/app/subnets/import-subnet/upload && \
|
||||||
|
chown www-data /var/www/html/css/images/logo && \
|
||||||
|
echo "\$db['webhost'] = '%';" >> ${WEB_REPO}/config.php && \
|
||||||
|
sed -i -e "s/\['host'\] = '127.0.0.1'/\['host'\] = getenv(\"MYSQL_ENV_MYSQL_HOST\") ?: \"mysql\"/" \
|
||||||
|
-e "s/\['user'\] = 'phpipam'/\['user'\] = getenv(\"MYSQL_ENV_MYSQL_USER\") ?: \"root\"/" \
|
||||||
|
-e "s/\['name'\] = 'phpipam'/\['name'\] = getenv(\"MYSQL_ENV_MYSQL_DB\") ?: \"phpipam\"/" \
|
||||||
|
-e "s/\['pass'\] = 'phpipamadmin'/\['pass'\] = getenv(\"MYSQL_ENV_MYSQL_ROOT_PASSWORD\")/" \
|
||||||
|
-e "s/\['port'\] = 3306;/\['port'\] = 3306;\n\n\$password_file = getenv(\"MYSQL_ENV_MYSQL_PASSWORD_FILE\");\nif(file_exists(\$password_file))\n\$db\['pass'\] = preg_replace(\"\/\\\\s+\/\", \"\", file_get_contents(\$password_file));/" \
|
||||||
|
-e "s/define('BASE', \"\/\")/define('BASE', getenv(\"PHPIPAM_BASE\"))/" \
|
||||||
|
-e "s/\$gmaps_api_key.*/\$gmaps_api_key = getenv(\"GMAPS_API_KEY\") ?: \"\";/" \
|
||||||
|
-e "s/\$gmaps_api_geocode_key.*/\$gmaps_api_geocode_key = getenv(\"GMAPS_API_GEOCODE_KEY\") ?: \"\";/" \
|
||||||
|
${WEB_REPO}/config.php
|
||||||
|
|
||||||
|
EXPOSE 80
|
130
ipam/INSTALL.md
Normal file
130
ipam/INSTALL.md
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
# docker-phpipam
|
||||||
|
|
||||||
|
phpIPAM is an open-source web IP address management application. Its goal is to provide light and simple IP address management application.
|
||||||
|
|
||||||
|
phpIPAM is developed and maintained by Miha Petkovsek, released under the GPL v3 license, project source is [here](https://github.com/phpipam/phpipam).
|
||||||
|
|
||||||
|
Learn more on [phpIPAM homepage](http://phpipam.net).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## How to use this Docker image
|
||||||
|
|
||||||
|
### Mysql
|
||||||
|
|
||||||
|
Run a MySQL database, dedicated to phpipam.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker run --name phpipam-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -v /my_dir/phpipam:/var/lib/mysql -d mysql:5.6
|
||||||
|
```
|
||||||
|
|
||||||
|
Here, we store data on the host system under `/my_dir/phpipam` and use a specific root password.
|
||||||
|
|
||||||
|
### Phpipam
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker run -ti -d -p 80:80 -e MYSQL_ENV_MYSQL_ROOT_PASSWORD=my-secret-pw --name ipam --link phpipam-mysql:mysql pierrecdn/phpipam
|
||||||
|
```
|
||||||
|
|
||||||
|
We are linking the two containers and exposing the HTTP port.
|
||||||
|
|
||||||
|
### First install scenario
|
||||||
|
|
||||||
|
* Browse to `http://<ip>[:<specific_port>]/install/`
|
||||||
|
* Step 1 : Choose 'Automatic database installation'
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Step 2 : Re-Enter connection information
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Note that these two first steps could be swapped by patching phpipam (see https://github.com/phpipam/phpipam/issues/25)
|
||||||
|
* Step 3 : Configure the admin user password
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* You're done !
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Docker compose
|
||||||
|
|
||||||
|
You can also create an all-in-one YAML deployment descriptor with Docker compose, like this:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: '2'
|
||||||
|
|
||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
image: mysql:5.6
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=my-secret-pw
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- db_data:/var/lib/mysql
|
||||||
|
ipam:
|
||||||
|
depends_on:
|
||||||
|
- mysql
|
||||||
|
image: pierrecdn/phpipam
|
||||||
|
environment:
|
||||||
|
- MYSQL_ENV_MYSQL_USER=root
|
||||||
|
- MYSQL_ENV_MYSQL_ROOT_PASSWORD=my-secret-pw
|
||||||
|
- MYSQL_ENV_MYSQL_HOST=mysql
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
volumes:
|
||||||
|
db_data:
|
||||||
|
```
|
||||||
|
|
||||||
|
And next :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also point the `MYSQL_ENV_PASSWORD_FILE` environment variable to a file,
|
||||||
|
in which case the contents of this file will be used as the password.
|
||||||
|
This makes it possible to use docker secrets for instance:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
ipam:
|
||||||
|
environment:
|
||||||
|
- MYSQL_ENV_MYSQL_PASSWORD_FILE=/run/secrets/phpipam_mysql_root_password
|
||||||
|
secrets:
|
||||||
|
- phpipam_mysql_root_password
|
||||||
|
```
|
||||||
|
|
||||||
|
The secret can be created by running `echo my-secret-pw | docker secret create phpipam_mysql_root_password -`
|
||||||
|
|
||||||
|
### Advanced Configuration
|
||||||
|
|
||||||
|
Here is the list of the available environment variables in the phpipam container, pass them to docker using `-e`.
|
||||||
|
None of them are actually needed to run the container, this is only to tweak the behavior.
|
||||||
|
|
||||||
|
| Environment variable | Default value | Description |
|
||||||
|
| ------------------------------ |:-------------:| --------------------------------------------------------------------------------------------------------:|
|
||||||
|
| MYSQL_ENV_MYSQL_HOST | mysql | The host used to reach the MySQL instance |
|
||||||
|
| MYSQL_ENV_MYSQL_USER | root | The user to connect the MySQL instance |
|
||||||
|
| MYSQL_ENV_MYSQL_ROOT_PASSWORD | (empty) | The MySQL password. Can be set using the Web UI during the first install |
|
||||||
|
| MYSQL_ENV_MYSQL_DB | phpipam | The name of the MySQL DB to connect to |
|
||||||
|
| MYSQL_ENV_MYSQL_PASSWORD_FILE | (empty) | A file containing the password (if not using MYSQL_ROOT_PASSWORD) this allows to leverage docker secrets |
|
||||||
|
| PHPIPAM_BASE | / | The base URI under which phpipam runs. Useful when performing rewrites with a reverse-proxy |
|
||||||
|
| GMAPS_API_KEY | (empty) | Google Maps API Key, used to display maps of your devices |
|
||||||
|
| GMAPS_API_GEOCODE_KEY | (empty) | Google Maps Geocode API Key, used to find coordinates from an address/ a location of your device |
|
||||||
|
|
||||||
|
### Specific integration (HTTPS, multi-host containers, etc.)
|
||||||
|
|
||||||
|
Regarding your requirements and docker setup, you've to expose resources.
|
||||||
|
|
||||||
|
For HTTPS, run a reverse-proxy in front of your phpipam container and link it to.
|
||||||
|
|
||||||
|
For multi-host containers, expose ports, run etcd or consul to make service discovery works etc.
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
phpIPAM is under heavy development by the amazing Miha.
|
||||||
|
To upgrade the release version, just change the `PHPIPAM_VERSION` environment variable to the target release (see [here](https://github.com/phpipam/phpipam/releases)).
|
@@ -2,45 +2,43 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
phpipam-web:
|
web:
|
||||||
image: phpipam/phpipam-www:latest
|
image: phpipam/phpipam-www:latest
|
||||||
container_name: phpipam_www
|
container_name: ipam_www
|
||||||
ports:
|
ports:
|
||||||
- "8080:80"
|
- "8080:80"
|
||||||
environment:
|
environment:
|
||||||
- TZ=Europe/Berlin
|
- TZ=${TZ}
|
||||||
- IPAM_DATABASE_HOST=phpipam-mariadb
|
- IPAM_DATABASE_HOST=${MARIADB_HOST}
|
||||||
- IPAM_DATABASE_PASS=IPAMpass
|
- IPAM_DATABASE_PASS=${MARIADB_ROOT_PASSWORD}
|
||||||
- IPAM_DATABASE_WEBHOST=%
|
- IPAM_DATABASE_WEBHOST=%
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- phpipam-logo:/phpipam/css/images/logo
|
- ./volumes/logo:/phpipam/css/images/logo
|
||||||
depends_on:
|
depends_on:
|
||||||
- phpipam-mariadb
|
- mariadb
|
||||||
|
|
||||||
phpipam-cron:
|
cron:
|
||||||
image: phpipam/phpipam-cron:latest
|
image: phpipam/phpipam-cron:latest
|
||||||
container_name: phpipam_cron
|
container_name: ipam_cron
|
||||||
environment:
|
environment:
|
||||||
- TZ=Europe/London
|
- TZ=${TZ}
|
||||||
- IPAM_DATABASE_HOST=phpipam-mariadb
|
- SCAN_INTERVAL=1
|
||||||
- IPAM_DATABASE_PASS=IPAMpass
|
- PHPIPAM_BASE=/
|
||||||
- SCAN_INTERVAL=1h
|
- MYSQL_ENV_MYSQL_USER=root
|
||||||
|
- MYSQL_ENV_MYSQL_DB=phpipam
|
||||||
|
- MYSQL_ENV_MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
|
||||||
|
- MYSQL_ENV_MYSQL_HOST=${MARIADB_HOST}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- phpipam-mariadb
|
- mariadb
|
||||||
|
|
||||||
phpipam-mariadb:
|
mariadb:
|
||||||
image: mariadb:latest
|
image: mariadb:latest
|
||||||
container_name: phpipam_db
|
container_name: ipam_db
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_ROOT_PASSWORD=IPAMrootpwd
|
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
|
||||||
- MARIADB_USER=phpipam-mariadb
|
|
||||||
- MARIADB_PASSWORD=IPAMpass
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- phpipam-db-data:/var/lib/mysql
|
- ./volumes/mariadb:/var/lib/mysql
|
||||||
|
|
||||||
volumes:
|
|
||||||
phpipam-db-data:
|
|
||||||
phpipam-logo:
|
|
||||||
|
72
ipam/php.ini
Normal file
72
ipam/php.ini
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
[PHP]
|
||||||
|
engine = On
|
||||||
|
short_open_tag = Off
|
||||||
|
precision = 14
|
||||||
|
output_buffering = 4096
|
||||||
|
zlib.output_compression = Off
|
||||||
|
implicit_flush = Off
|
||||||
|
serialize_precision = 17
|
||||||
|
zend.enable_gc = On
|
||||||
|
expose_php = Off
|
||||||
|
max_execution_time = 600
|
||||||
|
max_input_time = 60
|
||||||
|
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
|
||||||
|
display_errors = Off
|
||||||
|
log_errors = On
|
||||||
|
log_errors_max_len = 1024
|
||||||
|
default_mimetype = "text/html"
|
||||||
|
default_charset = "UTF-8"
|
||||||
|
file_uploads = On
|
||||||
|
upload_max_filesize = 2M
|
||||||
|
max_file_uploads = 20
|
||||||
|
allow_url_fopen = On
|
||||||
|
allow_url_include = Off
|
||||||
|
default_socket_timeout = 60
|
||||||
|
|
||||||
|
[Date]
|
||||||
|
date.timezone = "UTC"
|
||||||
|
|
||||||
|
[mail function]
|
||||||
|
smtp_port = 25
|
||||||
|
mail.add_x_header = On
|
||||||
|
|
||||||
|
[SQL]
|
||||||
|
sql.safe_mode = Off
|
||||||
|
|
||||||
|
[MySQLi]
|
||||||
|
mysqli.max_persistent = -1
|
||||||
|
mysqli.allow_persistent = On
|
||||||
|
mysqli.max_links = -1
|
||||||
|
mysqli.cache_size = 2000
|
||||||
|
mysqli.default_port = 3306
|
||||||
|
mysqli.reconnect = Off
|
||||||
|
|
||||||
|
[mysqlnd]
|
||||||
|
mysqlnd.collect_statistics = On
|
||||||
|
mysqlnd.collect_memory_statistics = Off
|
||||||
|
|
||||||
|
[Session]
|
||||||
|
session.save_handler = files
|
||||||
|
session.use_strict_mode = 0
|
||||||
|
session.use_cookies = 1
|
||||||
|
session.use_only_cookies = 1
|
||||||
|
session.name = PHPSESSID
|
||||||
|
session.auto_start = 0
|
||||||
|
session.cookie_lifetime = 0
|
||||||
|
session.cookie_path = /
|
||||||
|
session.cookie_domain =
|
||||||
|
session.cookie_httponly =
|
||||||
|
session.serialize_handler = php
|
||||||
|
session.gc_probability = 1
|
||||||
|
session.gc_divisor = 1000
|
||||||
|
session.gc_maxlifetime = 1440
|
||||||
|
session.cache_limiter = nocache
|
||||||
|
session.cache_expire = 180
|
||||||
|
session.use_trans_sid = 0
|
||||||
|
session.hash_function = 0
|
||||||
|
session.hash_bits_per_character = 5
|
||||||
|
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
|
||||||
|
|
||||||
|
[ldap]
|
||||||
|
ldap.max_links = -1
|
||||||
|
|
8
it-tools/docker-compose.yml
Normal file
8
it-tools/docker-compose.yml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
it-tools:
|
||||||
|
image: 'corentinth/it-tools:latest'
|
||||||
|
ports:
|
||||||
|
- '8010:80'
|
||||||
|
restart: unless-stopped
|
||||||
|
container_name: it-tools
|
@@ -0,0 +1,12 @@
|
|||||||
|
MW_SCRIPT_PATH=/w
|
||||||
|
MW_SERVER=http://localhost:8080
|
||||||
|
MW_DOCKER_PORT=8080
|
||||||
|
MEDIAWIKI_USER=Admin
|
||||||
|
MEDIAWIKI_PASSWORD=dockerpass
|
||||||
|
XDEBUG_CONFIG=
|
||||||
|
XDEBUG_ENABLE=true
|
||||||
|
XHPROF_ENABLE=true
|
||||||
|
MYSQL_DATABASE: my_wiki
|
||||||
|
MYSQL_USER: wikiuser
|
||||||
|
MYSQL_PASSWORD: example
|
||||||
|
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
|
||||||
|
@@ -6,14 +6,14 @@ version: '3'
|
|||||||
services:
|
services:
|
||||||
mediawiki:
|
mediawiki:
|
||||||
image: mediawiki
|
image: mediawiki
|
||||||
container_name: mediawiki
|
container_name: wiki
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- 8070:80
|
- 8070:80
|
||||||
links:
|
links:
|
||||||
- database
|
- database
|
||||||
volumes:
|
volumes:
|
||||||
- /var/www/html/images
|
- ./volumes/images:/var/www/html/images
|
||||||
# After initial setup, download LocalSettings.php to the same directory as
|
# After initial setup, download LocalSettings.php to the same directory as
|
||||||
# this yaml and uncomment the following line and use compose to restart
|
# this yaml and uncomment the following line and use compose to restart
|
||||||
# the mediawiki service
|
# the mediawiki service
|
||||||
@@ -21,11 +21,13 @@ services:
|
|||||||
# This key also defines the name of the database host used during setup instead of the default "localhost"
|
# This key also defines the name of the database host used during setup instead of the default "localhost"
|
||||||
database:
|
database:
|
||||||
image: mariadb
|
image: mariadb
|
||||||
container_name: mediawiki_db
|
container_name: wikidb
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
# @see https://phabricator.wikimedia.org/source/mediawiki/browse/master/includes/DefaultSettings.php
|
# @see https://phabricator.wikimedia.org/source/mediawiki/browse/master/includes/DefaultSettings.php
|
||||||
MYSQL_DATABASE: my_wiki
|
MYSQL_DATABASE: wiki
|
||||||
MYSQL_USER: wikiuser
|
MYSQL_USER: wikiuser
|
||||||
MYSQL_PASSWORD: example
|
MYSQL_PASSWORD: example
|
||||||
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
|
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
|
||||||
|
volumes:
|
||||||
|
- ./volumes/mariadb:/var/lib/mysql
|
||||||
|
1
ntop/.gitignore
vendored
Normal file
1
ntop/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
./volumes/**
|
29
ntop/docker-compose.yml
Normal file
29
ntop/docker-compose.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
version: "3.9"
|
||||||
|
services:
|
||||||
|
nprobe_collector:
|
||||||
|
image: ntop/nprobe:stable
|
||||||
|
restart: always
|
||||||
|
network_mode: "host"
|
||||||
|
volumes:
|
||||||
|
- ./volumes/nprobe.license:/etc/nprobe.license:ro
|
||||||
|
command: ['nprobe', '--zmq', '"tcp://ntopng:5556"', '--interface', 'none', '-n', 'none', '--collector-port', '2055', '-T', '"@NTOPNG@"', '--collector-passthrough']
|
||||||
|
|
||||||
|
ntopng:
|
||||||
|
image: ntop/ntopng:latest
|
||||||
|
restart: always
|
||||||
|
network_mode: "host"
|
||||||
|
volumes:
|
||||||
|
- ./volumes/ntopng.license:/etc/ntopng.license:ro
|
||||||
|
command: ['--disable-login', '--interface', 'tcp://*:5556c', '-F', 'clickhouse'] # , '--insecure']
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
- nprobe_collector
|
||||||
|
|
||||||
|
clickhouse:
|
||||||
|
image: clickhouse/clickhouse-server:latest
|
||||||
|
network_mode: "host"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./volumes/clickhouse_data:/var/lib/clickhouse
|
||||||
|
- ./volumes/clickhouse_logs:/var/log/clickhouse-server/
|
||||||
|
|
101
paperless-ngx/README.md
Normal file
101
paperless-ngx/README.md
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://github.com/paperless-ngx/paperless-ngx/raw/main/resources/logo/web/png/Black%20logo%20-%20no%20background.png#gh-light-mode-only" width="50%" />
|
||||||
|
|
||||||
|
<!-- omit in toc -->
|
||||||
|
|
||||||
|
# Paperless-ngx
|
||||||
|
|
||||||
|
Paperless-ngx is a document management system that transforms your physical documents into a searchable online archive so you can keep, well, _less paper_.
|
||||||
|
|
||||||
|
Paperless-ngx forked from [paperless-ng](https://github.com/jonaswinkler/paperless-ng) to continue the great work and distribute responsibility of supporting and advancing the project among a team of people. [Consider joining us!](#community-support) Discussion of this transition can be found in issues
|
||||||
|
[#1599](https://github.com/jonaswinkler/paperless-ng/issues/1599) and [#1632](https://github.com/jonaswinkler/paperless-ng/issues/1632).
|
||||||
|
|
||||||
|
A demo is available at [demo.paperless-ngx.com](https://demo.paperless-ngx.com) using login `demo` / `demo`. _Note: demo content is reset frequently and confidential information should not be uploaded._
|
||||||
|
|
||||||
|
- [Features](#features)
|
||||||
|
- [Getting started](#getting-started)
|
||||||
|
- [Contributing](#contributing)
|
||||||
|
- [Community Support](#community-support)
|
||||||
|
- [Translation](#translation)
|
||||||
|
- [Feature Requests](#feature-requests)
|
||||||
|
- [Bugs](#bugs)
|
||||||
|
- [Affiliated Projects](#affiliated-projects)
|
||||||
|
- [Important Note](#important-note)
|
||||||
|
|
||||||
|
# Features
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
- Organize and index your scanned documents with tags, correspondents, types, and more.
|
||||||
|
- Performs OCR on your documents, adds selectable text to image only documents and adds tags, correspondents and document types to your documents.
|
||||||
|
- Supports PDF documents, images, plain text files, and Office documents (Word, Excel, Powerpoint, and LibreOffice equivalents).
|
||||||
|
- Office document support is optional and provided by Apache Tika (see [configuration](https://docs.paperless-ngx.com/configuration/#tika))
|
||||||
|
- Paperless stores your documents plain on disk. Filenames and folders are managed by paperless and their format can be configured freely.
|
||||||
|
- Single page application front end.
|
||||||
|
- Includes a dashboard that shows basic statistics and has document upload.
|
||||||
|
- Filtering by tags, correspondents, types, and more.
|
||||||
|
- Customizable views can be saved and displayed on the dashboard.
|
||||||
|
- Full text search helps you find what you need.
|
||||||
|
- Auto completion suggests relevant words from your documents.
|
||||||
|
- Results are sorted by relevance to your search query.
|
||||||
|
- Highlighting shows you which parts of the document matched the query.
|
||||||
|
- Searching for similar documents ("More like this")
|
||||||
|
- Email processing: Paperless adds documents from your email accounts.
|
||||||
|
- Configure multiple accounts and filters for each account.
|
||||||
|
- When adding documents from mail, paperless can move these mail to a new folder, mark them as read, flag them as important or delete them.
|
||||||
|
- Machine learning powered document matching.
|
||||||
|
- Paperless-ngx learns from your documents and will be able to automatically assign tags, correspondents and types to documents once you've stored a few documents in paperless.
|
||||||
|
- Optimized for multi core systems: Paperless-ngx consumes multiple documents in parallel.
|
||||||
|
- The integrated sanity checker makes sure that your document archive is in good health.
|
||||||
|
- [More screenshots are available in the documentation](https://docs.paperless-ngx.com/#screenshots).
|
||||||
|
|
||||||
|
# Getting started
|
||||||
|
|
||||||
|
The easiest way to deploy paperless is docker-compose. The files in the [`/docker/compose` directory](https://github.com/paperless-ngx/paperless-ngx/tree/main/docker/compose) are configured to pull the image from Github Packages.
|
||||||
|
|
||||||
|
If you'd like to jump right in, you can configure a docker-compose environment with our install script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively, you can install the dependencies and setup apache and a database server yourself. The [documentation](https://docs.paperless-ngx.com/setup/#installation) has a step by step guide on how to do it.
|
||||||
|
|
||||||
|
Migrating from Paperless-ng is easy, just drop in the new docker image! See the [documentation on migrating](https://docs.paperless-ngx.com/setup/#migrating-to-paperless-ngx) for more details.
|
||||||
|
|
||||||
|
<!-- omit in toc -->
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
|
||||||
|
The documentation for Paperless-ngx is available at [https://docs.paperless-ngx.com](https://docs.paperless-ngx.com/).
|
||||||
|
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
If you feel like contributing to the project, please do! Bug fixes, enhancements, visual fixes etc. are always welcome. If you want to implement something big: Please start a discussion about that! The [documentation](https://docs.paperless-ngx.com/development/) has some basic information on how to get started.
|
||||||
|
|
||||||
|
## Community Support
|
||||||
|
|
||||||
|
People interested in continuing the work on paperless-ngx are encouraged to reach out here on github and in the [Matrix Room](https://matrix.to/#/#paperless:adnidor.de). If you would like to contribute to the project on an ongoing basis there are multiple [teams](https://github.com/orgs/paperless-ngx/people) (frontend, ci/cd, etc) that could use your help so please reach out!
|
||||||
|
|
||||||
|
## Translation
|
||||||
|
|
||||||
|
Paperless-ngx is available in many languages that are coordinated on Crowdin. If you want to help out by translating paperless-ngx into your language, please head over to https://crwd.in/paperless-ngx, and thank you! More details can be found in [CONTRIBUTING.md](https://github.com/paperless-ngx/paperless-ngx/blob/main/CONTRIBUTING.md#translating-paperless-ngx).
|
||||||
|
|
||||||
|
## Feature Requests
|
||||||
|
|
||||||
|
Feature requests can be submitted via [GitHub Discussions](https://github.com/paperless-ngx/paperless-ngx/discussions/categories/feature-requests), you can search for existing ideas, add your own and vote for the ones you care about.
|
||||||
|
|
||||||
|
## Bugs
|
||||||
|
|
||||||
|
For bugs please [open an issue](https://github.com/paperless-ngx/paperless-ngx/issues) or [start a discussion](https://github.com/paperless-ngx/paperless-ngx/discussions) if you have questions.
|
||||||
|
|
||||||
|
# Affiliated Projects
|
||||||
|
|
||||||
|
Please see [the wiki](https://github.com/paperless-ngx/paperless-ngx/wiki/Affiliated-Projects) for a user-maintained list of affiliated projects and software that is compatible with Paperless-ngx.
|
||||||
|
|
||||||
|
# Important Note
|
||||||
|
|
||||||
|
> Document scanners are typically used to scan sensitive documents like your social insurance number, tax records, invoices, etc. **Paperless-ngx should never be run on an untrusted host** because information is stored in clear text without encryption. No guarantees are made regarding security (but we do try!) and you use the app at your own risk.
|
||||||
|
> **The safest way to run Paperless-ngx is on a local server in your own home with backups in place**.
|
7
paperless-ngx/docker-compose.env
Normal file
7
paperless-ngx/docker-compose.env
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
PAPERLESS_URL=http://localhost:8000
|
||||||
|
USERMAP_UID=1000
|
||||||
|
USERMAP_GID=1000
|
||||||
|
PAPERLESS_TIME_ZONE=Europe/Berlin
|
||||||
|
PAPERLESS_OCR_LANGUAGE=deu
|
||||||
|
PAPERLESS_SECRET_KEY=3f4Xd1AtwjkfkQyc5QgokOG7AbFCc5mvt1lAj0iFsYH6s7VOMraoaseJiHMI5WXT
|
||||||
|
PAPERLESS_OCR_LANGUAGES="deu eng fra ita spa"
|
59
paperless-ngx/docker-compose.sqlite.yml
Normal file
59
paperless-ngx/docker-compose.sqlite.yml
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# docker-compose file for running paperless from the Docker Hub.
|
||||||
|
# This file contains everything paperless needs to run.
|
||||||
|
# Paperless supports amd64, arm and arm64 hardware.
|
||||||
|
#
|
||||||
|
# All compose files of paperless configure paperless in the following way:
|
||||||
|
#
|
||||||
|
# - Paperless is (re)started on system boot, if it was running before shutdown.
|
||||||
|
# - Docker volumes for storing data are managed by Docker.
|
||||||
|
# - Folders for importing and exporting files are created in the same directory
|
||||||
|
# as this file and mounted to the correct folders inside the container.
|
||||||
|
# - Paperless listens on port 8000.
|
||||||
|
#
|
||||||
|
# SQLite is used as the database. The SQLite file is stored in the data volume.
|
||||||
|
#
|
||||||
|
# To install and update paperless with this file, do the following:
|
||||||
|
#
|
||||||
|
# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env'
|
||||||
|
# and '.env' into a folder.
|
||||||
|
# - Run 'docker-compose pull'.
|
||||||
|
# - Run 'docker-compose run --rm webserver createsuperuser' to create a user.
|
||||||
|
# - Run 'docker-compose up -d'.
|
||||||
|
#
|
||||||
|
# For more extensive installation and update instructions, refer to the
|
||||||
|
# documentation.
|
||||||
|
|
||||||
|
version: "3.4"
|
||||||
|
services:
|
||||||
|
broker:
|
||||||
|
image: docker.io/library/redis:7
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- redisdata:/data
|
||||||
|
|
||||||
|
webserver:
|
||||||
|
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- broker
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
volumes:
|
||||||
|
- data:/usr/src/paperless/data
|
||||||
|
- media:/usr/src/paperless/media
|
||||||
|
- ./export:/usr/src/paperless/export
|
||||||
|
- ./consume:/usr/src/paperless/consume
|
||||||
|
env_file: docker-compose.env
|
||||||
|
environment:
|
||||||
|
PAPERLESS_REDIS: redis://broker:6379
|
||||||
|
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
data:
|
||||||
|
media:
|
||||||
|
redisdata:
|
81
paperless-ngx/docker-compose.yml
Normal file
81
paperless-ngx/docker-compose.yml
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
# docker-compose file for running paperless from the Docker Hub.
|
||||||
|
# This file contains everything paperless needs to run.
|
||||||
|
# Paperless supports amd64, arm and arm64 hardware.
|
||||||
|
#
|
||||||
|
# All compose files of paperless configure paperless in the following way:
|
||||||
|
#
|
||||||
|
# - Paperless is (re)started on system boot, if it was running before shutdown.
|
||||||
|
# - Docker volumes for storing data are managed by Docker.
|
||||||
|
# - Folders for importing and exporting files are created in the same directory
|
||||||
|
# as this file and mounted to the correct folders inside the container.
|
||||||
|
# - Paperless listens on port 8000.
|
||||||
|
#
|
||||||
|
# In addition to that, this docker-compose file adds the following optional
|
||||||
|
# configurations:
|
||||||
|
#
|
||||||
|
# - Instead of SQLite (default), MariaDB is used as the database server.
|
||||||
|
#
|
||||||
|
# To install and update paperless with this file, do the following:
|
||||||
|
#
|
||||||
|
# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env'
|
||||||
|
# and '.env' into a folder.
|
||||||
|
# - Run 'docker-compose pull'.
|
||||||
|
# - Run 'docker-compose run --rm webserver createsuperuser' to create a user.
|
||||||
|
# - Run 'docker-compose up -d'.
|
||||||
|
#
|
||||||
|
# For more extensive installation and update instructions, refer to the
|
||||||
|
# documentation.
|
||||||
|
|
||||||
|
version: "3.4"
|
||||||
|
services:
|
||||||
|
broker:
|
||||||
|
image: docker.io/library/redis:7
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- redisdata:/data
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: docker.io/library/mariadb:10
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- dbdata:/var/lib/mysql
|
||||||
|
environment:
|
||||||
|
MARIADB_HOST: paperless
|
||||||
|
MARIADB_DATABASE: paperless
|
||||||
|
MARIADB_USER: paperless
|
||||||
|
MARIADB_PASSWORD: paperless
|
||||||
|
MARIADB_ROOT_PASSWORD: paperless
|
||||||
|
|
||||||
|
webserver:
|
||||||
|
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- broker
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8000"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
volumes:
|
||||||
|
- data:/usr/src/paperless/data
|
||||||
|
- media:/usr/src/paperless/media
|
||||||
|
- ./export:/usr/src/paperless/export
|
||||||
|
- ./consume:/usr/src/paperless/consume
|
||||||
|
env_file: docker-compose.env
|
||||||
|
environment:
|
||||||
|
PAPERLESS_REDIS: redis://broker:6379
|
||||||
|
PAPERLESS_DBENGINE: mariadb
|
||||||
|
PAPERLESS_DBHOST: db
|
||||||
|
PAPERLESS_DBUSER: paperless # only needed if non-default username
|
||||||
|
PAPERLESS_DBPASS: paperless # only needed if non-default password
|
||||||
|
PAPERLESS_DBPORT: 3306
|
||||||
|
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
data:
|
||||||
|
media:
|
||||||
|
dbdata:
|
||||||
|
redisdata:
|
1
peppermint/.gitignore
vendored
Normal file
1
peppermint/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
./volumes/**
|
31
peppermint/docker-compose.yml
Normal file
31
peppermint/docker-compose.yml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
version: "3.1"
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
container_name: ppmint-db
|
||||||
|
image: postgres:latest
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./volumes/db:/data/db
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: peppermint
|
||||||
|
POSTGRES_PASSWORD: 1234
|
||||||
|
POSTGRES_DB: peppermint
|
||||||
|
|
||||||
|
client:
|
||||||
|
container_name: ppmint
|
||||||
|
image: pepperlabs/peppermint:latest
|
||||||
|
ports:
|
||||||
|
- 5000:5000
|
||||||
|
restart: on-failure
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
environment:
|
||||||
|
PORT: 5000
|
||||||
|
DB_USERNAME: peppermint
|
||||||
|
DB_PASSWORD: 1234
|
||||||
|
DB_HOST: 'ppmint-db'
|
||||||
|
BASE_URL: "http://itmgmt.ostrach.tld:5000/"
|
||||||
|
|
||||||
|
# Login: admin@admin.com / 1234
|
||||||
|
|
13
portainer/docker-compose.yaml
Normal file
13
portainer/docker-compose.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
version: '2.4'
|
||||||
|
|
||||||
|
services:
|
||||||
|
portainer:
|
||||||
|
image: portainer/portainer-ce:latest
|
||||||
|
container_name: portainer
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 8000:8000
|
||||||
|
- 9443:9443
|
||||||
|
volumes:
|
||||||
|
- ./volumes/data:/data
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
111
proxy/README.md
Normal file
111
proxy/README.md
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
<p align="center">
|
||||||
|
<img src="https://nginxproxymanager.com/github.png">
|
||||||
|
<br><br>
|
||||||
|
<img src="https://img.shields.io/badge/version-2.10.3-green.svg?style=for-the-badge">
|
||||||
|
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
|
||||||
|
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
|
||||||
|
</a>
|
||||||
|
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
|
||||||
|
<img src="https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
This project comes as a pre-built docker image that enables you to easily forward to your websites
|
||||||
|
running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt.
|
||||||
|
|
||||||
|
- [Quick Setup](#quick-setup)
|
||||||
|
- [Full Setup](https://nginxproxymanager.com/setup/)
|
||||||
|
- [Screenshots](https://nginxproxymanager.com/screenshots/)
|
||||||
|
|
||||||
|
## Project Goal
|
||||||
|
|
||||||
|
I created this project to fill a personal need to provide users with a easy way to accomplish reverse
|
||||||
|
proxying hosts with SSL termination and it had to be so easy that a monkey could do it. This goal hasn't changed.
|
||||||
|
While there might be advanced options they are optional and the project should be as simple as possible
|
||||||
|
so that the barrier for entry here is low.
|
||||||
|
|
||||||
|
<a href="https://www.buymeacoffee.com/jc21" target="_blank"><img src="http://public.jc21.com/github/by-me-a-coffee.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;" ></a>
|
||||||
|
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Beautiful and Secure Admin Interface based on [Tabler](https://tabler.github.io/)
|
||||||
|
- Easily create forwarding domains, redirections, streams and 404 hosts without knowing anything about Nginx
|
||||||
|
- Free SSL using Let's Encrypt or provide your own custom SSL certificates
|
||||||
|
- Access Lists and basic HTTP Authentication for your hosts
|
||||||
|
- Advanced Nginx configuration available for super users
|
||||||
|
- User management, permissions and audit log
|
||||||
|
|
||||||
|
|
||||||
|
## Hosting your home network
|
||||||
|
|
||||||
|
I won't go in to too much detail here but here are the basics for someone new to this self-hosted world.
|
||||||
|
|
||||||
|
1. Your home router will have a Port Forwarding section somewhere. Log in and find it
|
||||||
|
2. Add port forwarding for port 80 and 443 to the server hosting this project
|
||||||
|
3. Configure your domain name details to point to your home, either with a static ip or a service like DuckDNS or [Amazon Route53](https://github.com/jc21/route53-ddns)
|
||||||
|
4. Use the Nginx Proxy Manager as your gateway to forward to your other web based services
|
||||||
|
|
||||||
|
## Quick Setup
|
||||||
|
|
||||||
|
1. Install Docker and Docker-Compose
|
||||||
|
|
||||||
|
- [Docker Install documentation](https://docs.docker.com/install/)
|
||||||
|
- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/)
|
||||||
|
|
||||||
|
2. Create a docker-compose.yml file similar to this:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: 'jc21/nginx-proxy-manager:latest'
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- '80:80'
|
||||||
|
- '81:81'
|
||||||
|
- '443:443'
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- ./letsencrypt:/etc/letsencrypt
|
||||||
|
```
|
||||||
|
|
||||||
|
This is the bare minimum configuration required. See the [documentation](https://nginxproxymanager.com/setup/) for more.
|
||||||
|
|
||||||
|
3. Bring up your stack by running
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# If using docker-compose-plugin
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Log in to the Admin UI
|
||||||
|
|
||||||
|
When your docker container is running, connect to it on port `81` for the admin interface.
|
||||||
|
Sometimes this can take a little bit because of the entropy of keys.
|
||||||
|
|
||||||
|
[http://127.0.0.1:81](http://127.0.0.1:81)
|
||||||
|
|
||||||
|
Default Admin User:
|
||||||
|
```
|
||||||
|
Email: admin@example.com
|
||||||
|
Password: changeme
|
||||||
|
```
|
||||||
|
|
||||||
|
Immediately after logging in with this default user you will be asked to modify your details and change your password.
|
||||||
|
|
||||||
|
|
||||||
|
## Contributors
|
||||||
|
|
||||||
|
Special thanks to [all of our contributors](https://github.com/NginxProxyManager/nginx-proxy-manager/graphs/contributors).
|
||||||
|
|
||||||
|
|
||||||
|
## Getting Support
|
||||||
|
|
||||||
|
1. [Found a bug?](https://github.com/NginxProxyManager/nginx-proxy-manager/issues)
|
||||||
|
2. [Discussions](https://github.com/NginxProxyManager/nginx-proxy-manager/discussions)
|
||||||
|
3. [Development Gitter](https://gitter.im/nginx-proxy-manager/community)
|
||||||
|
4. [Reddit](https://reddit.com/r/nginxproxymanager)
|
13
proxy/docker-compose.yml
Normal file
13
proxy/docker-compose.yml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: 'jc21/nginx-proxy-manager:latest'
|
||||||
|
# network_mode: "host"
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- '80:80'
|
||||||
|
- '81:81'
|
||||||
|
- '443:443'
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- ./letsencrypt:/etc/letsencrypt
|
5
proxy/generate_selfsigned_cert.sh
Normal file
5
proxy/generate_selfsigned_cert.sh
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes \
|
||||||
|
-subj "/C=XX/ST=Bayern/L=Musterstadt/O=Organisation/OU=Development/CN=SelfSigned" \
|
||||||
|
-addext "subjectAltName=DNS:*.example.com"
|
@@ -2,7 +2,7 @@ MYSQL_ROOT_PASSWORD=Holdiom,snipeit,root
|
|||||||
MYSQL_DATABASE=snipeit
|
MYSQL_DATABASE=snipeit
|
||||||
MYSQL_USER=snipeit
|
MYSQL_USER=snipeit
|
||||||
MYSQL_PASSWORD=Holdiom,snipeit
|
MYSQL_PASSWORD=Holdiom,snipeit
|
||||||
MYSQL_PORT_3306_TCP_ADDR=snipeit-db
|
MYSQL_PORT_3306_TCP_ADDR=snipe_db
|
||||||
MYSQL_PORT_3306_TCP_PORT=3306
|
MYSQL_PORT_3306_TCP_PORT=3306
|
||||||
MAIL_PORT_587_TCP_ADDR=192.168.75.25
|
MAIL_PORT_587_TCP_ADDR=192.168.75.25
|
||||||
MAIL_PORT_587_TCP_PORT=587
|
MAIL_PORT_587_TCP_PORT=587
|
||||||
@@ -14,6 +14,6 @@ MAIL_ENV_PASSWORD=pass
|
|||||||
APP_ENV=production
|
APP_ENV=production
|
||||||
APP_DEBUG=false
|
APP_DEBUG=false
|
||||||
APP_KEY=base64:i/+ZvT6C4LEWcBNL7vWwicRVtEt05pv22RhWMJy+yZ8=
|
APP_KEY=base64:i/+ZvT6C4LEWcBNL7vWwicRVtEt05pv22RhWMJy+yZ8=
|
||||||
APP_URL=http://it.ostrach.tld:8090
|
APP_URL=http://itmgmt.ostrach.tld:8090
|
||||||
APP_TIMEZONE=Europe/Berlin
|
APP_TIMEZONE=Europe/Berlin
|
||||||
APP_LOCALE=de
|
APP_LOCALE=de
|
||||||
|
1
snipeit/.gitignore
vendored
Normal file
1
snipeit/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
./volumes/**
|
@@ -3,18 +3,18 @@ version: '3'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
mysql:
|
mysql:
|
||||||
image: mysql:latest
|
image: mariadb:latest
|
||||||
container_name: snipeit-db
|
container_name: snipe_db
|
||||||
env_file:
|
env_file:
|
||||||
- ./.env
|
- ./.env
|
||||||
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- db:/var/lib/mysql
|
- ./volumes/db:/var/lib/mysql
|
||||||
|
|
||||||
app:
|
app:
|
||||||
image: snipe/snipe-it:latest
|
image: snipe/snipe-it:latest
|
||||||
container_name: snipeit-app
|
container_name: snipe_app
|
||||||
env_file:
|
env_file:
|
||||||
- ./.env
|
- ./.env
|
||||||
ports:
|
ports:
|
||||||
@@ -22,7 +22,4 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- mysql
|
- mysql
|
||||||
|
|
||||||
volumes:
|
|
||||||
db:
|
|
||||||
|
|
||||||
|
@@ -1,19 +0,0 @@
|
|||||||
MYSQL_ROOT_PASSWORD=Holdiom,snipeit,root
|
|
||||||
MYSQL_DATABASE=snipeit
|
|
||||||
MYSQL_USER=snipeit
|
|
||||||
MYSQL_PASSWORD=Holdiom,snipeit
|
|
||||||
MYSQL_PORT_3306_TCP_ADDR=snipeit-db
|
|
||||||
MYSQL_PORT_3306_TCP_PORT=3306
|
|
||||||
MAIL_PORT_587_TCP_ADDR=192.168.75.25
|
|
||||||
MAIL_PORT_587_TCP_PORT=587
|
|
||||||
MAIL_ENV_FROM_ADDR=it@hochvogel.de
|
|
||||||
MAIL_ENV_FROM_NAME=Snipe-IT
|
|
||||||
MAIL_ENV_ENCRYPTION=tcp
|
|
||||||
MAIL_ENV_USERNAME=user
|
|
||||||
MAIL_ENV_PASSWORD=pass
|
|
||||||
APP_ENV=production
|
|
||||||
APP_DEBUG=false
|
|
||||||
APP_KEY=base64:i/+ZvT6C4LEWcBNL7vWwicRVtEt05pv22RhWMJy+yZ8=
|
|
||||||
APP_URL=http://it.ostrach.tld:8090
|
|
||||||
APP_TIMEZONE=Europe/Berlin
|
|
||||||
APP_LOCALE=de
|
|
1
speedtest/.gitignore
vendored
Normal file
1
speedtest/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
./volumes/**
|
@@ -6,7 +6,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 8765:80
|
- 8765:80
|
||||||
volumes:
|
volumes:
|
||||||
- /path/to/data:/config
|
- ./volumes/config:/config
|
||||||
environment:
|
environment:
|
||||||
- TZ=Europe/Berlin
|
- TZ=Europe/Berlin
|
||||||
- PGID=
|
- PGID=
|
||||||
@@ -17,4 +17,4 @@ services:
|
|||||||
options:
|
options:
|
||||||
max-file: "10"
|
max-file: "10"
|
||||||
max-size: "200k"
|
max-size: "200k"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
23
startstop.sh
23
startstop.sh
@@ -27,6 +27,20 @@ compose()
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clean()
|
||||||
|
{
|
||||||
|
for STACK in $STACKS;
|
||||||
|
do
|
||||||
|
echo "Verzeichnis: $STACK"
|
||||||
|
if [ -e $STACK/volumes ]
|
||||||
|
then
|
||||||
|
echo " Volumes in $STACK loeschen..."
|
||||||
|
rm $STACK/volumes/* -rfv
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
|
|
||||||
down)
|
down)
|
||||||
@@ -41,6 +55,15 @@ stop)
|
|||||||
compose "docker compose stop"
|
compose "docker compose stop"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
pull)
|
||||||
|
compose "docker compose pull"
|
||||||
|
;;
|
||||||
|
|
||||||
|
cleanup)
|
||||||
|
#compose "rm ./volumes/* -rf"
|
||||||
|
clean
|
||||||
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "Usage: $0 [start|stop|down]"
|
echo "Usage: $0 [start|stop|down]"
|
||||||
;;
|
;;
|
||||||
|
22
stirling-pdf/docker-compose.yml
Normal file
22
stirling-pdf/docker-compose.yml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
stirling-pdf:
|
||||||
|
container_name: Stirling-PDF
|
||||||
|
image: frooodle/s-pdf
|
||||||
|
mem_limit: 2g
|
||||||
|
cpu_shares: 768
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
ports:
|
||||||
|
- 8020:8080
|
||||||
|
volumes:
|
||||||
|
- ./volume/data:/usr/share/tesseract-ocr/4.00/tessdata:rw # Required for extra OCR languages
|
||||||
|
- ./volume/config:/configs:rw
|
||||||
|
environment:
|
||||||
|
APP_LOCALE: de_DE # or fr_FR or de_DE
|
||||||
|
APP_HOME_NAME: Stirling PDF
|
||||||
|
APP_HOME_DESCRIPTION: Stirling PDF
|
||||||
|
APP_NAVBAR_NAME: Stirling PDF
|
||||||
|
APP_ROOT_PATH: /pdf
|
||||||
|
# ALLOW_GOOGLE_VISABILITY: true # or false
|
||||||
|
restart: on-failure:5
|
14
zabbix/.env
14
zabbix/.env
@@ -0,0 +1,14 @@
|
|||||||
|
MYSQL_ROOT_PASSWORD=zabbixrootsqlsecret
|
||||||
|
MYSQL_USER=zabbix
|
||||||
|
MYSQL_PASSWORD=zabbixsqlsecret
|
||||||
|
MYSQL_DATABASE=zabbix
|
||||||
|
DB_SERVER_HOST=zbxdb
|
||||||
|
DB_SERVER_PORT=3306
|
||||||
|
ZBX_DEBUGLEVEL=3
|
||||||
|
ZBX_SERVER_HOST="zabbix"
|
||||||
|
PHP_TZ="Europe/Berlin"
|
||||||
|
SERVER_NAME=itmgmt.ostrach.tld
|
||||||
|
ZBX_SERVER_HOST=zabbix
|
||||||
|
ZBX_HOSTNAME=agent2
|
||||||
|
ZBX_STARTAGENTS=5
|
||||||
|
|
||||||
|
1
zabbix/.gitignore
vendored
Normal file
1
zabbix/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
./volumes/**
|
@@ -4,69 +4,65 @@ version: '3.3'
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
mysql:
|
mysql:
|
||||||
image: mysql:latest
|
image: mariadb:10.7.8
|
||||||
container_name: zabbix-db
|
container_name: zbxdb
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_ROOT_PASSWORD=zabbixrootsqlsecret
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||||
- MYSQL_USER=zabbix
|
- MYSQL_USER=${MYSQL_USER}
|
||||||
- MYSQL_PASSWORD=zabbixsqlsecret
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||||
- MYSQL_DATABASE=zabbix
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||||
- DB_SERVER_HOST=zabbix-db
|
- DB_SERVER_HOST=${DB_SERVER_HOST}
|
||||||
- DB_SERVER_PORT=3306
|
- DB_SERVER_PORT=${DB_SERVER_PORT}
|
||||||
- ZBX_DEBUGLEVEL=3
|
- ZBX_DEBUGLEVEL=${ZBX_DEBUGLEVEL}
|
||||||
- ZBX_SERVER_HOST=zabbix-server
|
- ZBX_SERVER_HOST=${ZBX_SERVER_HOST}
|
||||||
cap_add:
|
cap_add:
|
||||||
- SYS_NICE # CAP_SYS_NICE
|
- SYS_NICE # CAP_SYS_NICE
|
||||||
volumes:
|
volumes:
|
||||||
- db:/var/lib/mysql
|
- ./volumes/db:/var/lib/mysql
|
||||||
|
|
||||||
server:
|
server:
|
||||||
image: zabbix/zabbix-server-mysql
|
image: zabbix/zabbix-server-mysql
|
||||||
container_name: zabbix-server
|
container_name: zabbix
|
||||||
ports:
|
ports:
|
||||||
- "10051:10051"
|
- "10051:10051"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- SERVER_NAME=server
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||||
- MYSQL_ROOT_PASSWORD=zabbixrootsqlsecret
|
- MYSQL_USER=${MYSQL_USER}
|
||||||
- MYSQL_USER=zabbix
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||||
- MYSQL_PASSWORD=zabbixsqlsecret
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||||
- MYSQL_DATABASE=zabbix
|
- DB_SERVER_HOST=${DB_SERVER_HOST}
|
||||||
- DB_SERVER_HOST=zabbix-db
|
- DB_SERVER_PORT=${DB_SERVER_PORT}
|
||||||
- DB_SERVER_PORT=3306
|
- ZBX_DEBUGLEVEL=${ZBX_DEBUGLEVEL}
|
||||||
- ZBX_DEBUGLEVEL=3
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- mysql
|
- mysql
|
||||||
|
|
||||||
agent:
|
agent:
|
||||||
image: zabbix/zabbix-agent2
|
image: zabbix/zabbix-agent2
|
||||||
container_name: zabbix-agent2
|
container_name: zbxagent2
|
||||||
privileged: true
|
privileged: true
|
||||||
environment:
|
environment:
|
||||||
- ZBX_SERVER_HOST=zabbix-server
|
- ZBX_SERVER_HOST=${ZBX_SERVER_HOST}
|
||||||
- ZBX_HOSTNAME=zabbix-agent2
|
- ZBX_HOSTNAME=${ZBX_HOSTNAME}
|
||||||
- ZBX_STARTAGENTS=3
|
- ZBX_STARTAGENTS=${ZBX_STARTAGENTS}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
web:
|
web:
|
||||||
image: zabbix/zabbix-web-apache-mysql
|
image: zabbix/zabbix-web-apache-mysql
|
||||||
container_name: zabbix-web
|
container_name: zbxweb
|
||||||
ports:
|
ports:
|
||||||
- "8085:8080"
|
- "8085:8080"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_USER=zabbix
|
- MYSQL_USER=${MYSQL_USER}
|
||||||
- MYSQL_PASSWORD=zabbixsqlsecret
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||||
- MYSQL_DATABASE=zabbix
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||||
- DB_SERVER_HOST=zabbix-db
|
- DB_SERVER_HOST=${DB_SERVER_HOST}
|
||||||
- DB_SERVER_PORT=3306
|
- DB_SERVER_PORT=${DB_SERVER_PORT}
|
||||||
- ZBX_DEBUGLEVEL=3
|
- ZBX_DEBUGLEVEL=${ZBX_DEBUGLEVEL}
|
||||||
- ZBX_SERVER_HOST=zabbix-server
|
- ZBX_SERVER_HOST=${ZBX_SERVER_HOST}
|
||||||
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- mysql
|
- mysql
|
||||||
|
|
||||||
volumes:
|
|
||||||
db:
|
|
||||||
|
|
@@ -1,9 +0,0 @@
|
|||||||
MYSQL_ROOT_PASSWORD=zabbixrootsqlsecret
|
|
||||||
MYSQL_USER=zabbix
|
|
||||||
MYSQL_PASSWORD=zabbixsqlsecret
|
|
||||||
MYSQL_DATABASE=zabbix
|
|
||||||
DB_SERVER_HOST=zabbix-db
|
|
||||||
DB_SERVER_PORT=3306
|
|
||||||
ZBX_DEBUGLEVEL=3
|
|
||||||
ZBX_SERVER_HOST="zabbix-server"
|
|
||||||
PHP_TZ="Europe/Berlin"
|
|
Reference in New Issue
Block a user