diff --git a/README.md b/README.md
index 9e582d6..497c4dd 100644
--- a/README.md
+++ b/README.md
@@ -155,6 +155,7 @@ ScaleTail provides ready-to-run [Docker Compose](https://docs.docker.com/compose
| đď¸ **Vaultwarden** | An unofficial Bitwarden server implementation written in Rust. | [Details](services/vaultwarden) |
| â
**Vikunja** | A self-hosted task and project management platform with projects, reminders, labels, recurring tasks, and collaboration features. | [Details](services/vikunja) |
| đ¸ **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) |
+| đ **XWiki** |XWiki offers a generic platform for developing projects and collaborative applications using the wiki paradigm.|[Details](services/xwiki)|
### đ Dashboards and Visualization
@@ -252,8 +253,8 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
-
-
+
+
@@ -282,13 +283,6 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
michaelhodges
|
-
-
-
-
- LaijieJi
-
- |
@@ -296,8 +290,6 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
adamsthws
|
-
-
@@ -305,6 +297,8 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
theryukverse
|
+
+
@@ -320,10 +314,17 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
|
-
-
+
+
- jpmurray
+ onlykshitij
+
+ |
+
+
+
+
+ LaijieJi
|
@@ -340,8 +341,8 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
mikkotor
|
-
-
+
+
@@ -384,8 +385,8 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
pjv
|
-
-
+
+
@@ -393,6 +394,13 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
wedge22
|
+
+
+
+
+ jpmurray
+
+ |
@@ -421,6 +429,8 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
dfilvtov
|
+
+
@@ -428,8 +438,6 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
cdkooistra
|
-
-
@@ -458,8 +466,8 @@ A huge thank you to all our contributors! ScaleTail wouldnât be what it is tod
orchard0
|
-
-
+
+
diff --git a/services/xwiki/.env b/services/xwiki/.env
new file mode 100644
index 0000000..c5af418
--- /dev/null
+++ b/services/xwiki/.env
@@ -0,0 +1,30 @@
+#version=1.1
+#URL=https://github.com/tailscale-dev/ScaleTail
+#COMPOSE_PROJECT_NAME= # Optional: only use when running multiple deployments on the same infrastructure.
+
+# Service Configuration
+SERVICE=xwiki # Service name (e.g., adguard). Used as hostname in Tailscale and for container naming (app-${SERVICE}).
+IMAGE_URL=xwiki:stable-mariadb-tomcat # Docker image URL from container registry (e.g., adguard/adguard-home).
+
+# Network Configuration
+SERVICEPORT=80 # Port to expose to local network. Uncomment the "ports:" section in compose.yaml to enable.
+DNS_SERVER=9.9.9.9 # Preferred DNS server for Tailscale. Uncomment the "dns:" section in compose.yaml to enable.
+
+# Tailscale Configuration
+TS_AUTHKEY= # Auth key from https://tailscale.com/admin/authkeys. See: https://tailscale.com/kb/1085/auth-keys#generate-an-auth-key for instructions.
+
+# Time Zone setting for containers
+TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
+
+# Optional Service variables
+# PUID=1000
+
+
+#EXAMPLE_VAR="Environment varibale"
+
+# Default environment values
+XWIKI_VERSION=18.2.1
+DB_USER=xwiki
+DB_PASSWORD=xwiki
+DB_DATABASE=xwiki
+MARIADB_ROOT_PASSWORD=xwiki
diff --git a/services/xwiki/README.md b/services/xwiki/README.md
new file mode 100644
index 0000000..83a633b
--- /dev/null
+++ b/services/xwiki/README.md
@@ -0,0 +1,21 @@
+# XWiki with Tailscale Sidecar Configuration
+
+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.
+
+## XWiki
+
+[**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.
+
+## Key Features
+
+- đ Rich content editing with WYSIWYG and Markdown support
+- đĽ Advanced user permissions and access control
+- đ Highly extensible with plugins and macros
+- đ Structured data and application-building capabilities
+- đ Full-text search and content organization tools
+- đ˘ Ideal for internal documentation and knowledge bases
+
+## Resources
+
+- XWiki Docker Repo:
+- XWiki Documentation:
diff --git a/services/xwiki/compose.yml b/services/xwiki/compose.yml
new file mode 100644
index 0000000..8e919ca
--- /dev/null
+++ b/services/xwiki/compose.yml
@@ -0,0 +1,86 @@
+configs:
+ ts-serve:
+ content: |
+ {"TCP":{"443":{"HTTPS":true}},
+ "Web":{"$${TS_CERT_DOMAIN}:443":
+ {"Handlers":{"/":
+ {"Proxy":"http://127.0.0.1:8080"}}}},
+ "AllowFunnel":{"$${TS_CERT_DOMAIN}:443":false}}
+
+services:
+# Make sure you have updated/checked the .env file with the correct variables.
+# All the ${ xx } need to be defined there.
+ # Tailscale Sidecar Configuration
+ tailscale:
+ image: tailscale/tailscale:latest # Image to be used
+ container_name: tailscale-${SERVICE} # Name for local container management
+ hostname: ${SERVICE} # Name used within your Tailscale environment
+ environment:
+ - TS_AUTHKEY=${TS_AUTHKEY}
+ - TS_STATE_DIR=/var/lib/tailscale
+ - TS_SERVE_CONFIG=/config/serve.json # Tailscale Serve configuration to expose the web interface on your local Tailnet - remove this line if not required
+ - TS_USERSPACE=false
+ - TS_ENABLE_HEALTH_CHECK=true # Enable healthcheck endpoint: "/healthz"
+ - TS_LOCAL_ADDR_PORT=127.0.0.1:41234 # The : for the healthz endpoint
+ #- TS_ACCEPT_DNS=true # Uncomment when using MagicDNS
+ - TS_AUTH_ONCE=true
+ configs:
+ - source: ts-serve
+ target: /config/serve.json
+ volumes:
+ - ./config:/config # Config folder used to store Tailscale files - you may need to change the path
+ - ./ts/state:/var/lib/tailscale # Tailscale requirement - you may need to change the path
+ devices:
+ - /dev/net/tun:/dev/net/tun # Network configuration for Tailscale to work
+ cap_add:
+ - net_admin # Tailscale requirement
+ #ports:
+ # - 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
+ # If any DNS issues arise, use your preferred DNS provider by uncommenting the config below
+ # dns:
+ # - ${DNS_SERVER}
+ healthcheck:
+ test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:41234/healthz"] # Check Tailscale has a Tailnet IP and is operational
+ interval: 1m # How often to perform the check
+ timeout: 10s # Time to wait for the check to succeed
+ retries: 3 # Number of retries before marking as unhealthy
+ start_period: 10s # Time to wait before starting health checks
+ restart: always
+
+# ${SERVICE}
+ application:
+ image: ${IMAGE_URL} # Image to be used
+ network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale
+ container_name: app-${SERVICE} # Name for local container management
+ depends_on:
+ tailscale:
+ condition: service_healthy
+ db:
+ condition: service_started
+ environment: # Varibles are delared in .env file.
+ - XWIKI_VERSION=${XWIKI_VERSION}
+ - DB_USER=${DB_USER}
+ - DB_PASSWORD=${DB_PASSWORD}
+ - DB_DATABASE=${DB_DATABASE}
+ - DB_HOST=db-${SERVICE}
+ volumes:
+ - ./${SERVICE}-data/xwiki:/usr/local/xwiki
+ restart: always
+ db:
+ image: "mariadb:12"
+ container_name: db-${SERVICE}
+ volumes:
+ - ./${SERVICE}-data/mariadb:/var/lib/mysql
+ - type: bind
+ source: ./init.sql
+ target: /docker-entrypoint-initdb.d/init.sql
+ environment:
+ - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
+ - MARIADB_USER=${DB_USER}
+ - MARIADB_PASSWORD=${DB_PASSWORD}
+ - MARIADB_DATABASE=${DB_DATABASE}
+ command:
+ - "--character-set-server=utf8mb4"
+ - "--collation-server=utf8mb4_bin"
+ - "--explicit-defaults-for-timestamp=1"
+ restart: always
diff --git a/services/xwiki/init.sql b/services/xwiki/init.sql
new file mode 100644
index 0000000..76dfd8c
--- /dev/null
+++ b/services/xwiki/init.sql
@@ -0,0 +1 @@
+grant all privileges on *.* to xwiki@'%'