Skip to content

Commit 27084b6

Browse files
michaelhodgesgithub-actions[bot]michaelhodgescrypt0rr
authored
New Service Xwiki (#285)
* docs(contributor): contrib-readme-action has updated readme * docs(contributor): contrib-readme-action has updated readme * docs(contributor): contrib-readme-action has updated readme * New Service XWiki * Update README.md * docs: update README.md to enhance XWiki description and clarify Tailscale integration * Added comments from template --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: michaelhodges <mr.hodges+github@gmail.com> Co-authored-by: crypt0rr <57799908+crypt0rr@users.noreply.github.com>
1 parent 2388904 commit 27084b6

5 files changed

Lines changed: 168 additions & 22 deletions

File tree

README.md

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ ScaleTail provides ready-to-run [Docker Compose](https://docs.docker.com/compose
155155
| 🗃️ **Vaultwarden** | An unofficial Bitwarden server implementation written in Rust. | [Details](services/vaultwarden) |
156156
|**Vikunja** | A self-hosted task and project management platform with projects, reminders, labels, recurring tasks, and collaboration features. | [Details](services/vikunja) |
157157
| 💸 **Wallos** | An open-source, self-hostable web app to track and manage your recurring subscriptions and expenses, with multi-currency support, customizable categories, and statistics. | [Details](services/wallos) |
158+
| 📚 **XWiki** |XWiki offers a generic platform for developing projects and collaborative applications using the wiki paradigm.|[Details](services/xwiki)|
158159

159160
### 📊 Dashboards and Visualization
160161

@@ -252,8 +253,8 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod
252253

253254
<!-- readme: contributors -start -->
254255
<table>
255-
<tbody>
256-
<tr>
256+
<tbody>
257+
<tr>
257258
<td align="center">
258259
<a href="https://github.com/crypt0rr">
259260
<img src="https://avatars.githubusercontent.com/u/57799908?v=4" width="100;" alt="crypt0rr"/>
@@ -282,29 +283,22 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod
282283
<sub><b>michaelhodges</b></sub>
283284
</a>
284285
</td>
285-
<td align="center">
286-
<a href="https://github.com/LaijieJi">
287-
<img src="https://avatars.githubusercontent.com/u/108839952?v=4" width="100;" alt="LaijieJi"/>
288-
<br />
289-
<sub><b>LaijieJi</b></sub>
290-
</a>
291-
</td>
292286
<td align="center">
293287
<a href="https://github.com/adamsthws">
294288
<img src="https://avatars.githubusercontent.com/u/52178922?v=4" width="100;" alt="adamsthws"/>
295289
<br />
296290
<sub><b>adamsthws</b></sub>
297291
</a>
298292
</td>
299-
</tr>
300-
<tr>
301293
<td align="center">
302294
<a href="https://github.com/theryukverse">
303295
<img src="https://avatars.githubusercontent.com/u/22323518?v=4" width="100;" alt="theryukverse"/>
304296
<br />
305297
<sub><b>theryukverse</b></sub>
306298
</a>
307299
</td>
300+
</tr>
301+
<tr>
308302
<td align="center">
309303
<a href="https://github.com/KhaaL">
310304
<img src="https://avatars.githubusercontent.com/u/692524?v=4" width="100;" alt="KhaaL"/>
@@ -320,10 +314,17 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod
320314
</a>
321315
</td>
322316
<td align="center">
323-
<a href="https://github.com/jpmurray">
324-
<img src="https://avatars.githubusercontent.com/u/1550428?v=4" width="100;" alt="jpmurray"/>
317+
<a href="https://github.com/onlykshitij">
318+
<img src="https://avatars.githubusercontent.com/u/30444410?v=4" width="100;" alt="onlykshitij"/>
325319
<br />
326-
<sub><b>jpmurray</b></sub>
320+
<sub><b>onlykshitij</b></sub>
321+
</a>
322+
</td>
323+
<td align="center">
324+
<a href="https://github.com/LaijieJi">
325+
<img src="https://avatars.githubusercontent.com/u/108839952?v=4" width="100;" alt="LaijieJi"/>
326+
<br />
327+
<sub><b>LaijieJi</b></sub>
327328
</a>
328329
</td>
329330
<td align="center">
@@ -340,8 +341,8 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod
340341
<sub><b>mikkotor</b></sub>
341342
</a>
342343
</td>
343-
</tr>
344-
<tr>
344+
</tr>
345+
<tr>
345346
<td align="center">
346347
<a href="https://github.com/NI-R0">
347348
<img src="https://avatars.githubusercontent.com/u/98448863?v=4" width="100;" alt="NI-R0"/>
@@ -384,15 +385,22 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod
384385
<sub><b>pjv</b></sub>
385386
</a>
386387
</td>
387-
</tr>
388-
<tr>
388+
</tr>
389+
<tr>
389390
<td align="center">
390391
<a href="https://github.com/wedge22">
391392
<img src="https://avatars.githubusercontent.com/u/34723349?v=4" width="100;" alt="wedge22"/>
392393
<br />
393394
<sub><b>wedge22</b></sub>
394395
</a>
395396
</td>
397+
<td align="center">
398+
<a href="https://github.com/jpmurray">
399+
<img src="https://avatars.githubusercontent.com/u/1550428?v=4" width="100;" alt="jpmurray"/>
400+
<br />
401+
<sub><b>jpmurray</b></sub>
402+
</a>
403+
</td>
396404
<td align="center">
397405
<a href="https://github.com/Jacob-JA-Shanks">
398406
<img src="https://avatars.githubusercontent.com/u/44290899?v=4" width="100;" alt="Jacob-JA-Shanks"/>
@@ -421,15 +429,15 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod
421429
<sub><b>dfilvtov</b></sub>
422430
</a>
423431
</td>
432+
</tr>
433+
<tr>
424434
<td align="center">
425435
<a href="https://github.com/cdkooistra">
426436
<img src="https://avatars.githubusercontent.com/u/70811244?v=4" width="100;" alt="cdkooistra"/>
427437
<br />
428438
<sub><b>cdkooistra</b></sub>
429439
</a>
430440
</td>
431-
</tr>
432-
<tr>
433441
<td align="center">
434442
<a href="https://github.com/Aurorainic">
435443
<img src="https://avatars.githubusercontent.com/u/88829187?v=4" width="100;" alt="Aurorainic"/>
@@ -458,8 +466,8 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod
458466
<sub><b>orchard0</b></sub>
459467
</a>
460468
</td>
461-
</tr>
462-
<tbody>
469+
</tr>
470+
<tbody>
463471
</table>
464472
<!-- readme: contributors -end -->
465473

services/xwiki/.env

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#version=1.1
2+
#URL=https://github.com/tailscale-dev/ScaleTail
3+
#COMPOSE_PROJECT_NAME= # Optional: only use when running multiple deployments on the same infrastructure.
4+
5+
# Service Configuration
6+
SERVICE=xwiki # Service name (e.g., adguard). Used as hostname in Tailscale and for container naming (app-${SERVICE}).
7+
IMAGE_URL=xwiki:stable-mariadb-tomcat # Docker image URL from container registry (e.g., adguard/adguard-home).
8+
9+
# Network Configuration
10+
SERVICEPORT=80 # Port to expose to local network. Uncomment the "ports:" section in compose.yaml to enable.
11+
DNS_SERVER=9.9.9.9 # Preferred DNS server for Tailscale. Uncomment the "dns:" section in compose.yaml to enable.
12+
13+
# Tailscale Configuration
14+
TS_AUTHKEY= # Auth key from https://tailscale.com/admin/authkeys. See: https://tailscale.com/kb/1085/auth-keys#generate-an-auth-key for instructions.
15+
16+
# Time Zone setting for containers
17+
TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
18+
19+
# Optional Service variables
20+
# PUID=1000
21+
22+
23+
#EXAMPLE_VAR="Environment varibale"
24+
25+
# Default environment values
26+
XWIKI_VERSION=18.2.1
27+
DB_USER=xwiki
28+
DB_PASSWORD=xwiki
29+
DB_DATABASE=xwiki
30+
MARIADB_ROOT_PASSWORD=xwiki

services/xwiki/README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# XWiki with Tailscale Sidecar Configuration
2+
3+
This Docker Compose configuration sets up **XWiki** with a Tailscale sidecar container, enabling secure, private access to your self-hosted wiki over your Tailnet. With this setup, your XWiki instance is **not exposed to the public internet** and is only accessible from authorized devices connected via Tailscale.
4+
5+
## XWiki
6+
7+
[**XWiki**](https://www.xwiki.org) is a powerful open-source wiki platform designed for collaboration, knowledge management, and building custom web applications. It combines the flexibility of a wiki with the structure of a CMS, making it suitable for teams, documentation hubs, and internal tools.
8+
9+
## Key Features
10+
11+
- 📝 Rich content editing with WYSIWYG and Markdown support
12+
- 👥 Advanced user permissions and access control
13+
- 🔌 Highly extensible with plugins and macros
14+
- 📊 Structured data and application-building capabilities
15+
- 🔍 Full-text search and content organization tools
16+
- 🏢 Ideal for internal documentation and knowledge bases
17+
18+
## Resources
19+
20+
- XWiki Docker Repo: <https://github.com/xwiki/xwiki-docker>
21+
- XWiki Documentation: <https://www.xwiki.org/xwiki/bin/view/Documentation/>

services/xwiki/compose.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
configs:
2+
ts-serve:
3+
content: |
4+
{"TCP":{"443":{"HTTPS":true}},
5+
"Web":{"$${TS_CERT_DOMAIN}:443":
6+
{"Handlers":{"/":
7+
{"Proxy":"http://127.0.0.1:8080"}}}},
8+
"AllowFunnel":{"$${TS_CERT_DOMAIN}:443":false}}
9+
10+
services:
11+
# Make sure you have updated/checked the .env file with the correct variables.
12+
# All the ${ xx } need to be defined there.
13+
# Tailscale Sidecar Configuration
14+
tailscale:
15+
image: tailscale/tailscale:latest # Image to be used
16+
container_name: tailscale-${SERVICE} # Name for local container management
17+
hostname: ${SERVICE} # Name used within your Tailscale environment
18+
environment:
19+
- TS_AUTHKEY=${TS_AUTHKEY}
20+
- TS_STATE_DIR=/var/lib/tailscale
21+
- TS_SERVE_CONFIG=/config/serve.json # Tailscale Serve configuration to expose the web interface on your local Tailnet - remove this line if not required
22+
- TS_USERSPACE=false
23+
- TS_ENABLE_HEALTH_CHECK=true # Enable healthcheck endpoint: "/healthz"
24+
- TS_LOCAL_ADDR_PORT=127.0.0.1:41234 # The <addr>:<port> for the healthz endpoint
25+
#- TS_ACCEPT_DNS=true # Uncomment when using MagicDNS
26+
- TS_AUTH_ONCE=true
27+
configs:
28+
- source: ts-serve
29+
target: /config/serve.json
30+
volumes:
31+
- ./config:/config # Config folder used to store Tailscale files - you may need to change the path
32+
- ./ts/state:/var/lib/tailscale # Tailscale requirement - you may need to change the path
33+
devices:
34+
- /dev/net/tun:/dev/net/tun # Network configuration for Tailscale to work
35+
cap_add:
36+
- net_admin # Tailscale requirement
37+
#ports:
38+
# - 0.0.0.0:${SERVICEPORT}:${SERVICEPORT} # Binding port ${SERVICE}PORT to the local network - may be removed if only exposure to your Tailnet is required
39+
# If any DNS issues arise, use your preferred DNS provider by uncommenting the config below
40+
# dns:
41+
# - ${DNS_SERVER}
42+
healthcheck:
43+
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:41234/healthz"] # Check Tailscale has a Tailnet IP and is operational
44+
interval: 1m # How often to perform the check
45+
timeout: 10s # Time to wait for the check to succeed
46+
retries: 3 # Number of retries before marking as unhealthy
47+
start_period: 10s # Time to wait before starting health checks
48+
restart: always
49+
50+
# ${SERVICE}
51+
application:
52+
image: ${IMAGE_URL} # Image to be used
53+
network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale
54+
container_name: app-${SERVICE} # Name for local container management
55+
depends_on:
56+
tailscale:
57+
condition: service_healthy
58+
db:
59+
condition: service_started
60+
environment: # Varibles are delared in .env file.
61+
- XWIKI_VERSION=${XWIKI_VERSION}
62+
- DB_USER=${DB_USER}
63+
- DB_PASSWORD=${DB_PASSWORD}
64+
- DB_DATABASE=${DB_DATABASE}
65+
- DB_HOST=db-${SERVICE}
66+
volumes:
67+
- ./${SERVICE}-data/xwiki:/usr/local/xwiki
68+
restart: always
69+
db:
70+
image: "mariadb:12"
71+
container_name: db-${SERVICE}
72+
volumes:
73+
- ./${SERVICE}-data/mariadb:/var/lib/mysql
74+
- type: bind
75+
source: ./init.sql
76+
target: /docker-entrypoint-initdb.d/init.sql
77+
environment:
78+
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
79+
- MARIADB_USER=${DB_USER}
80+
- MARIADB_PASSWORD=${DB_PASSWORD}
81+
- MARIADB_DATABASE=${DB_DATABASE}
82+
command:
83+
- "--character-set-server=utf8mb4"
84+
- "--collation-server=utf8mb4_bin"
85+
- "--explicit-defaults-for-timestamp=1"
86+
restart: always

services/xwiki/init.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
grant all privileges on *.* to xwiki@'%'

0 commit comments

Comments
 (0)