Docker images are distributed with 2 different container typetypes. All images are hosted in the docker hub https://hub.docker.com/u/6kare address.
...
Emakin Standalone contains all required dependencies to run emakin. Standalone image should be used as testing purposes and it's not recommended for production usage.
Code Block |
---|
|
docker run -p 80:80 6kare/emakin-standalone:latest |
On container start, the default domain is automatically created with "admin@emakin.com" user and "admin" password. Application can The application can be accessed from from http://localhost address and address, and the host administration settings can be accessed from from http://localhost/hostadm address.
Persisting Data
All stored application data is reset when container is restarted by default. If you need to persist application data docker mounts must be used store keep stored data between restarts.
Code Block |
---|
|
docker run -p 80:80 --mount source=emakindata,target=/var/lib/postgresql/data --mount source=emakindata,target=/srv/basex/data 6kare/emakin-standalone:latest |
address.
Emakin Container
Emakin image only contains the application image and does not contain any other dependency but the application image. Other dependencies like database, redis Redis etc., should be configured externally. This image should be used for more advanced scenarios like docker compose Docker Compose or kubernetes Kubernetes.
Code Block |
---|
|
docker run -p 80:80 6kare/emakin:latest8.5 |
Environment Variables
External database connection connections can be specified with the following environment variables if needed. The default database provider is "Postgre", but "Oracle" and "SqlServer" can be used as well.
Code Block |
---|
|
AK_DbProvider=Postgre
AK_DbConnStr=Host=databaseserver;Database=database;Username=user;Password=pass; |
Compose File
Emakin container can be deployed with the following Docker Compose file. Create a new text file with "docker-compose
file;.yml
" name and paste the following content into the file. After saving you can start emakin with the "docker compose up
" command.
Code Block |
---|
|
version: '3'
services:
web:
image: 6kare/emakin:latest8.5
ports:
- "80:80"
- "443:443"
- "5000:50007180:7180"
- "25:25"
- "587:587"
- "465:465"
depends_on:
- redis
- postgre
- basex
- tika
volumes:
- "emkdata:/app/Configuration/Data"
environment:
- AK_DbProvider=PostgrePostgreSql
- AK_DbConnStr=Host=postgre;Database=ALTIKARE;Username=ALTIKARE;Password=ALTIKARE;
- AK_RedisConnStr=redis,allowAdmin=true
- AK_BasexConnStr=http://admin:admin@basex:1984/
- AK_TikaConnStr=http://tika:9998/tika/
- AK_WopiConnStr=http://onlyoffice:81/hosting/discovery
- AK_AntivirusServerUrl=tcp://clamav:3310
postgre:
image: "postgres"
restart: always
volumes:
# - "/var/run/postgres/postgres.sock:/var/run/postgres/postgres.sock"
- "pgdata:/var/lib/postgresql/data"
environment:
- POSTGRES_USER=ALTIKARE
- POSTGRES_PASSWORD=ALTIKARE
- POSTGRES_DB=ALTIKARE
redis:
image: "redis:alpine"
expose:
- "6379"
basex:
image: "6kare/basex/basexhttp"
expose:
- "1984"
volumes:
- "basexdata:/srv/basex/data"
tika:
image: "6kare/tika2"
restart: always
expose:
- 9998
onlyoffice:
image: onlyoffice/documentserver
restart: always
environment:
USE_UNAUTHORIZED_STORAGE: "true"
WOPI_ENABLED: "true"
expose:
- "81:80"
- "8443:443"
clamav:
image: "clamav/clamav:latest"
restart: always
expose:
- 3310
volumes:
- "clamavdata:/var/lib/clamav"
volumes:
emkdata:
pgdata:
basexdata:
clamavdata:
|
CloudFlare Support
To support Cloudflare SSL termination please add the following environment variables to compose file. Please see the SSL termination page for more details.
Code Block |
---|
environment:
-AK_Web__ForwardedHeaders__ClearProxies=true
-AK_Web__ForwardedHeaders__ClearKnownNetworks=true
-AK_Web__ForwardedHeaders__ForwardedForHeaderName=CF-Connecting-IP |
Compose File With Load Balancer
Emakin also supports the load balancer scenarios with HAProxy under docker and can be deployed with the following Docker Compose file. Create a new text file with "docker-compose.yml
" name and paste following content into file. After saving you can start emakin with the "docker compose up
" command.
This sample fires 3 web application clones connected to the same postgres database.
Code Block |
---|
|
version: '4'
services:
haproxy:
image: haproxy:latest
volumes:
- "./haproxy:/usr/local/etc/haproxy:ro"
restart: always
ports:
- "80:80"
- "443:443"
- "7180:7180"
- "25:25"
- "587:587"
- "465:465"
web1:
image: 6kare/emakin:8.5
hostname: emakinapp1
expose:
- "80"
- "5000"
volumes:
- "ftdata:/ftdata"
depends_on:
- redis
- postgres
- basex
- tika
volumes:
- "emkdata:/app/Configuration/Data"
environment:
- AK_DbProvider=PostgreSql
- AK_DbConnStr=Host=postgres;Database=ALTIKARE;Username=ALTIKARE;Password=ALTIKARE;
- AK_RedisConnStr=redis,allowAdmin=true
- AK_BasexConnStr=http://admin:admin@basex:1984/
- AK_TikaConnStr=http://tika:9998/tika
- AK_WopiConnStr=http://onlyoffice:81/hosting/discovery
- AK_AntivirusServerUrl=tcp://clamav:3310
web2:
image: 6kare/emakin:8.5
hostname: emakinapp2
expose:
- "80"
- "7180"
- "25:25"
- "587:587"
- "465:465"
volumes:
- "emkdata:/app/Configuration/Data"
depends_on:
- redis
- postgres
- basex
- tika
- onlyoffice
environment:
- AK_DbProvider=PostgreSql
- AK_DbConnStr=Host=postgres;Database=ALTIKARE;Username=ALTIKARE;Password=ALTIKARE;
- AK_RedisConnStr=redis,allowAdmin=true
- AK_BasexConnStr=http://admin:admin@basex:1984/
- AK_TikaConnStr=http://tika:9998/tika
- AK_WopiConnStr=http://onlyoffice:81/hosting/discovery
- AK_AntivirusServerUrl=tcp://clamav:3310
web3:
image: 6kare/emakin:8.5
hostname: emakinapp3
expose:
- "80"
- "7180"
- "25:25"
- "587:587"
- "465:465"
volumes:
- "emkdata:/app/Configuration/Data"
depends_on:
- redis
- postgres
- basex
- tika
- onlyoffice
environment:
- AK_DbProvider=PostgreSql
- AK_DbConnStr=Host=postgres;Database=ALTIKARE;Username=ALTIKARE;Password=ALTIKARE;
- AK_RedisConnStr=redis,allowAdmin=true
- AK_BasexConnStr=http://admin:admin@basex:1984/
- AK_TikaConnStr=http://tika:9998/tika
- AK_WopiConnStr=http://onlyoffice:81/hosting/discovery
- AK_AntivirusServerUrl=tcp://clamav:3310
postgres:
image: "postgres"
restart: always
volumes:
# - "/var/run/postgres/postgres.sock:/var/run/postgres/postgres.sock"
- "pgdata:/var/lib/postgresql/data"
environment:
- POSTGRES_USER=ALTIKARE
- POSTGRES_PASSWORD=ALTIKARE
- POSTGRES_DB=ALTIKARE
redis:
image: "redis:alpine"
expose:
- "6379"
basex:
image: "6kare/basex"
expose:
- "1984"
volumes:
- "basexdata:/srv/basex/data"
tika:
image: "6kare/tika2"
restart: always
expose:
- 9998
onlyoffice:
image: onlyoffice/documentserver
environment:
USE_UNAUTHORIZED_STORAGE: "true"
WOPI_ENABLED: "true"
expose:
- "81:80"
- "8443:443"
clamav:
image: "clamav/clamav:latest"
restart: always
expose:
- 3310
volumes:
- "clamavdata:/var/lib/clamav"
volumes:
pgdata:
basexdata:
basexdata:
ftdata: |
HAProxy configuration
Code Block |
---|
frontend http
bind *:80
bind *:443
bind *:5000
mode http
timeout client 1000s
use_backend all
backend all
mode http
timeout server 1000s
timeout connect 1000s
server s1 web1:80
server s2 web2:80
server s3 web3:80 |