inital setup

This commit is contained in:
2023-06-11 21:33:35 +02:00
parent 73025e848d
commit 6fc0b51fe9
4 changed files with 157 additions and 1 deletions

12
.env.sample Normal file
View File

@@ -0,0 +1,12 @@
WIKITAG=2
DBTAG=10.6
SEARCHTAG=7.17.10
INTRANET=
DB_TYPE=
DB_HOST=
DB_PORT=
DBNAME=
DB_USER=
DB_PASS=

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
.env
files/

View File

@@ -1,2 +1,69 @@
# compose-wikijs
# Basic Wiki.js with MariaDB and Elasticsearch docker-compose config
* can be run on single node setup or in swarm
## howto
### single node
#### start container
```bash
docker compose up -d
```
#### stop container (and remove)
```bash
docker compose down
```
#### view logs
```bash
docker compose logs -f
```
#### reload config
```bash
docker compose restart
```
### swarm
#### start aka deploy
hint: drone fails to start until git auth source is created and set in vars
```bash
docker stack deploy -c docker-compose.yml wiki
```
#### stop container aka stack
```bash
docker stack rm wiki
```
#### view logs
```bash
docker service logs wiki_wiki -f
docker service logs wiki_db -f
docker service logs wiki_elastic -f
```
#### reload config (no downtime if replica 2 or more)
```bash
docker service update wiki_wiki
docker service update wiki_db
docker service update wiki_elastic
```
## example caddy config
```
wiki.example.com {
reverse_proxy wiki:3000
}
```
## config elastic search engin
1) Goto: Adminpanel => Search Engin
2) Select Elasticsearch
- Elasticsearch Version: 7.x
- Hosts: http://elastic:9300
- Index Name: wiki
3) Save with "Apply"
4) Hit "Rebuild index"
## source
- https://www.lucadentella.it/en/2022/05/10/wiki-js-ricerca-full-text-con-elasticsearch/

75
docker-compose.yml Normal file
View File

@@ -0,0 +1,75 @@
# https://docs.docker.com/compose/compose-file/compose-file-v3/
---
version: "3.9"
services:
wiki:
image: requarks/wiki:${WIKITAG:-latest}
container_name: wiki
restart: unless-stopped
depends_on:
- db
- elastic
ports:
- 3000:3000
deploy:
replicas: 1
placement:
max_replicas_per_node: 1
update_config:
parallelism: 1
delay: 10s
# volumes: # only need if using sqlite
# - ${BASEDIR:-.}/files/data/:/data/
# - ${BASEDIR:-.}/files/config/:/config/
environment:
- DB_TYPE=${DB_TYPE:-mariadb}
- DB_HOST=${DB_HOST:-db}
- DB_PORT=${DB_PORT:-3306}
- DB_NAME=${DBNAME:-wikijs}
- DB_USER=${DB_USER:-wikijs}
- DB_PASS=${DB_PASS:-wikijspasswd}
networks:
- backend
- wikinet
db:
image: mariadb:${DBTAG:-latest}
container_name: wikidb
restart: unless-stopped
deploy:
replicas: 1
placement:
max_replicas_per_node: 1
update_config:
parallelism: 1
delay: 10s
volumes:
- ${BASEDIR:-.}/files/db/:/var/lib/mysql/
environment:
- MARIADB_RANDOM_ROOT_PASSWORD=yes
- MARIADB_DATABASE=${DB_NAME:-wikijs}
- MARIADB_USER=${DB_USER:-wikijs}
- MARIADB_PASSWORD=${DB_PASS:-wikijspasswd}
networks:
- wikinet
elastic:
image: elasticsearch:${SEARCHTAG:-latest}
container_name: elastic
deploy:
replicas: 1
placement:
max_replicas_per_node: 1
update_config:
parallelism: 1
delay: 10s
environment:
- xpack.security.enabled=false
- "discovery.type=single-node"
networks:
- wikinet
networks:
backend:
name: ${INTRANET:-backend}
wikinet: