Docker images are distributed with 2 different container types. All images are hosted in the docker hub https://hub.docker.com/u/6kare address.
Emakin Standalone Container
Emakin Standalone contains all the required dependencies to run emakin. The standalone image should be used for 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. The application can be accessed from http://localhost address, and the host administration settings can be accessed from http://localhost/hostadm address.
Persistent Data
By default, the application data is reset when the container is restarted. Therefore, if you need to persist the application data, docker mounts must be used to keep the stored data between restartsOn container start, the default domain is automatically created with "admin@emakin.com" user and "admin" password. The application can be accessed from http://localhost address, and the host administration settings can be accessed from http://localhost/hostadm address.
Emakin Container
Emakin image does not contain any dependency but the application image. Other dependencies like database, Redis etc., should be configured externally. This image should be used for more advanced scenarios like Docker Compose or Kubernetes.
Code Block |
---|
|
docker run -p 80:80 6kare/emakin:8.5 |
Environment Variables
External database connections can be specified with the following environment variables. The default database provider is "Postgre", but "Oracle" and "SqlServer" can be used as well.
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 |
Emakin Container
...
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.yml
" name and paste the following content into the file. After saving you can start emakin with the "docker compose up
" command.
Code Block |
---|
Code Block |
---|
|
version: '3'
services:
web: |
docker run -p 80:80 6kare/emakin:latest |
Environment Variables
External database connections can be specified with the following environment variables. 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.yml
" name and paste the following content into the file. After saving you can start emakin with the "docker compose up
" command.
|
version: '3'
services:
web:
image: 6kare/emakin:8.5
ports:
- "80:80"
- "443:443"
- "7180:7180"
- image: 6kare/emakin:latest"25:25"
ports: - "587:587"
- "80:80" - "465:465"
- "443:443"depends_on:
- "7180:7180"redis
- "25:25"postgre
- "587:587"basex
- "465:465"tika
depends_onvolumes:
- redis
- postgre
- basex"emkdata:/app/Configuration/Data"
- tika
environment:
- AK_DbProvider=Npgsql.NpgsqlFactoryPostgreSql
- 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/
- 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/tikatika2"
restart: always
expose:
- 9998
onlyoffice:
image: onlyoffice/documentserver
restart: always
environment:
restart: always
environment:
USE_UNAUTHORIZED_STORAGE: "true"
WOPI_ENABLED: "true"
exposeUSE_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: 80always
ports:
- -"80:80"
443 clamav: - "443:443"
image:- "clamav/clamav7180:latest7180"
- restart: always"25:25"
- expose"587:587"
- "465:465"
web1:
- 3310 image: 6kare/emakin:8.5
volumeshostname: emakinapp1
expose:
- "clamavdata:/var/lib/clamav80"
volumes: - "5000"
pgdata: volumes:
basexdata: clamavdata: |
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- "ftdata:/ftdata"
depends_on:
- redis
- postgres
- basex
- tika
volumes:
- "./haproxyemkdata:/usrapp/local/etc/haproxy:ro"
Configuration/Data"
environment:
- AK_DbProvider=PostgreSql
restart: always - ports:AK_DbConnStr=Host=postgres;Database=ALTIKARE;Username=ALTIKARE;Password=ALTIKARE;
- "80:80"AK_RedisConnStr=redis,allowAdmin=true
- "443:443"
- "7180:7180"AK_BasexConnStr=http://admin:admin@basex:1984/
- "25:25"AK_TikaConnStr=http://tika:9998/tika
- "587:587"AK_WopiConnStr=http://onlyoffice:81/hosting/discovery
- "465:465"AK_AntivirusServerUrl=tcp://clamav:3310
web1web2:
image: 6kare/emakin:latest8.5
hostname: emakinapp1emakinapp2
expose:
- "80"
- "50007180"
volumes: - "ftdata25:/ftdata"
depends_on:25"
- redis"587:587"
- postgres"465:465"
volumes:
- basex - tika- "emkdata:/app/Configuration/Data"
environmentdepends_on:
- AK_DbConnStr=Host=postgres;Database=ALTIKARE;Username=ALTIKARE;Password=ALTIKARE;redis
- AK_RedisConnStr=redis,allowAdmin=truepostgres
- AK_BasexConnStr=http://admin:admin@basex:1984/basex
- AK_TikaConnStr=http://tika:9998/tika
- AK_FULLTEXTCATALOGPATH=/ftdataonlyoffice
web2environment:
image: 6kare/emakin:latest - AK_DbProvider=PostgreSql
hostname: emakinapp2- AK_DbConnStr=Host=postgres;Database=ALTIKARE;Username=ALTIKARE;Password=ALTIKARE;
expose: - "80"- AK_RedisConnStr=redis,allowAdmin=true
- "7180"AK_BasexConnStr=http://admin:admin@basex:1984/
- "25:25"AK_TikaConnStr=http://tika:9998/tika
- "587:587"AK_WopiConnStr=http://onlyoffice:81/hosting/discovery
- "465:465"AK_AntivirusServerUrl=tcp://clamav:3310
volumesweb3:
- "ftdata:/ftdata"
depends_on:
image: 6kare/emakin:8.5
hostname: emakinapp3
- redisexpose:
- postgres"80"
- basex"7180"
- tika"25:25"
- onlyoffice
environment:"587:587"
- AK_DbConnStr=Host=postgres;Database=ALTIKARE;Username=ALTIKARE;Password=ALTIKARE;
"465:465"
volumes:
- AK_RedisConnStr=redis,allowAdmin=true - AK_BasexConnStr=http"emkdata:/app/admin:admin@basex:1984/Configuration/Data"
depends_on:
- AK_TikaConnStr=http://tika:9998/tika - redis
- AK_FULLTEXTCATALOGPATH=/ftdata web3:- postgres
image: 6kare/emakin:latest - basex
hostname: emakinapp3 - expose:tika
- "80" onlyoffice
environment:
- "7180"AK_DbProvider=PostgreSql
- "25:25"AK_DbConnStr=Host=postgres;Database=ALTIKARE;Username=ALTIKARE;Password=ALTIKARE;
- "587:587"AK_RedisConnStr=redis,allowAdmin=true
- "465:465"
volumes:AK_BasexConnStr=http://admin:admin@basex:1984/
- "ftdata:/ftdata"
depends_on:AK_TikaConnStr=http://tika:9998/tika
- redisAK_WopiConnStr=http://onlyoffice:81/hosting/discovery
- postgresAK_AntivirusServerUrl=tcp://clamav:3310
postgres:
- baseximage: "postgres"
restart: -always
tika volumes:
- onlyoffice # environment:- "/var/run/postgres/postgres.sock:/var/run/postgres/postgres.sock"
- AK_DbConnStr=Host=postgres;Database=ALTIKARE;Username=ALTIKARE;Password=ALTIKARE;
"pgdata:/var/lib/postgresql/data"
- AK_RedisConnStr=redis,allowAdmin=true environment:
- AKPOSTGRES_BasexConnStr=http://admin:admin@basex:1984/USER=ALTIKARE
- AKPOSTGRES_TikaConnStr=http://tika:9998/tikaPASSWORD=ALTIKARE
- AKPOSTGRES_FULLTEXTCATALOGPATHDB=/ftdataALTIKARE
postgresredis:
image: "postgres"
restart: alwaysredis:alpine"
volumesexpose:
# - "/var/run/postgres/postgres.sock:/var/run/postgres/postgres.sock"
6379"
basex:
-image: "pgdata:/var/lib/postgresql/data6kare/basex"
environmentexpose:
- POSTGRES_USER=ALTIKARE - "1984"
- POSTGRES_PASSWORD=ALTIKARE volumes:
- POSTGRES_DB=ALTIKARE"basexdata:/srv/basex/data"
redistika:
image: "redis:alpine""6kare/tika2"
restart: always
expose:
- "6379" 9998
onlyoffice:
baseximage: onlyoffice/documentserver
imageenvironment:
"basex/basexhttp" expose:USE_UNAUTHORIZED_STORAGE: "true"
-WOPI_ENABLED: "1984true"
volumesexpose:
- "basexdata:/srv/basex/data81:80"
tika: - image: "6kare/tika"8443:443"
clamav:
restart: always exposeimage: "clamav/clamav:latest"
- 9998 onlyofficerestart: always
image: onlyoffice/documentserver environmentexpose:
USE_UNAUTHORIZED_STORAGE: "true" - 3310
WOPI_ENABLED: "true" expose: volumes:
- 80 - 443"clamavdata:/var/lib/clamav"
volumes:
pgdata:
basexdata:
ftdata: |
...