chore: add atlassian jira and confluence

This commit is contained in:
LRVT 2024-11-13 15:09:16 +01:00
parent bc4c28fb1a
commit 73abc64ba7
3 changed files with 142 additions and 0 deletions

View File

@ -173,6 +173,7 @@ Tools and software for [software project management](https://en.wikipedia.org/wi
- [Gitlab Community](examples/gitlab-ce) - Self Hosted Git repository management, code reviews, issue tracking, activity feeds and wikis.
- [Code-Server](examples/code-server) - VS Code in the browser, hosted on a remote server.
- [Onedev](examples/onedev) - Self-hosted Git Server with CI/CD and Kanban.
- [Atlassian Jira Core](examples/atlassian-jira-confluence) - Jira Core is a project and task management solution built for business teams.
### Automation and Monitoring
@ -388,6 +389,7 @@ A [wiki](https://en.wikipedia.org/wiki/Wiki) is a publication collaboratively ed
- [Memos](examples/memos) - An open-source, self-hosted memo hub with knowledge management and social networking.
- [HedgeDoc](examples/hedgedoc) - HedgeDoc lets you create real-time collaborative markdown notes.
- [Docmost](examples/docmost) - Docmost is an open source collaborative documentation and wiki software. It is an open-source alternative to the likes of Confluence and Notion.
- [Atlassian Confluence](examples/atlassian-jira-confluence) - Confluence is a wiki solution built for business teams.
### Money, Budgeting & Management

View File

@ -0,0 +1,14 @@
# References
- https://atlassian.github.io/data-center-helm-charts/containers/JIRA/
- https://atlassian.github.io/data-center-helm-charts/containers/CONFLUENCE/
- https://hub.docker.com/r/atlassian/jira-core
- https://hub.docker.com/r/atlassian/confluence
# Notes
The Jira Core container requires a database.
The compose stack will spawn up a postgresql database for this. You can configure the database connection from Jira's setup wirard via the HTTP UI.
May use a dedicated `.env` file to provide your custom DB credentials.

View File

@ -0,0 +1,126 @@
services:
confluence:
image: atlassian/confluence:latest
container_name: confluence
hostname: confluence
restart: unless-stopped
environment:
# detailed debug messages during the container initialization
- VERBOSE_LOGS=false
# maximum number of days for access logs to be retained before being deleted
- ATL_TOMCAT_ACCESS_LOGS_MAXDAYS=360
# The maximum time a user can remain logged-in with remember me feature.
- ATL_AUTOLOGIN_COOKIE_AGE
# The minimum heap size of the JVM
- JVM_MINIMUM_MEMORY=1024m
# maximum heap size of the JVM
- JVM_MAXIMUM_MEMORY=1024m
# reserved code cache size of the JVM
- JVM_RESERVED_CODE_CACHE_SIZE=256m
# reverse proxy setup
- ATL_PROXY_NAME=confluence.example.com
- ATL_PROXY_PORT=443
- ATL_TOMCAT_PORT=8090
- ATL_TOMCAT_SCHEME=https
- ATL_TOMCAT_SECURE=false
# list of trusted reverse proxy ips separated by a pipe character
- ATL_TOMCAT_TRUSTEDPROXIES=192.168.0.0/24|10.0.0.0/8|172.16.0.0/16
ports:
- 8090:8090/tcp
expose:
- 8090 # http web
- 8091 # api port for jira communication
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/confluence/data:/var/atlassian/application-data/confluence
networks:
- atlassian-network
#labels:
# - traefik.enable=true
# - traefik.docker.network=atlassian-network
# - traefik.http.routers.confluence.rule=Host(`confluence.example.com`)
# - traefik.http.services.confluence.loadbalancer.server.port=8080
# # Optional part for file upload max sizes
# - traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=50000000
# - traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=50000000
# - traefik.http.middlewares.limit.buffering.memRequestBodyBytes=50000000
# - traefik.http.middlewares.limit.buffering.memResponseBodyBytes=50000000
# # Optional part for traefik middlewares
# - traefik.http.routers.confluence.middlewares=local-ipwhitelist@file
jira:
image: atlassian/jira-core:9.9.2
container_name: jira
hostname: jira
restart: unless-stopped
environment:
# detailed debug messages during the container initialization
- VERBOSE_LOGS=false
# maximum number of days for access logs to be retained before being deleted
- ATL_TOMCAT_ACCESS_LOGS_MAXDAYS=360
# The maximum time a user can remain logged-in with remember me feature.
- ATL_AUTOLOGIN_COOKIE_AGE
# The minimum heap size of the JVM
- JVM_MINIMUM_MEMORY=1024m
# maximum heap size of the JVM
- JVM_MAXIMUM_MEMORY=1024m
# reserved code cache size of the JVM
- JVM_RESERVED_CODE_CACHE_SIZE=256m
# reverse proxy setup
- ATL_PROXY_NAME=jira.example.com
- ATL_PROXY_PORT=443
- ATL_TOMCAT_PORT=8090
- ATL_TOMCAT_SCHEME=https
- ATL_TOMCAT_SECURE=false
# list of trusted reverse proxy ips separated by a pipe character
- ATL_TOMCAT_TRUSTEDPROXIES=192.168.0.0/24|10.0.0.0/8|172.16.0.0/16
depends_on:
- postgresql
ports:
- 8080:8080/tcp
expose:
- 8080 # http web
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/jira/data:/var/atlassian/application-data/jira
networks:
- atlassian-network
- internal-db-network
#labels:
# - traefik.enable=true
# - traefik.docker.network=atlassian-network
# - traefik.http.routers.jira.rule=Host(`jira.example.com`)
# - traefik.http.services.jira.loadbalancer.server.port=8080
# # Optional part for file upload max sizes
# - traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=50000000
# - traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=50000000
# - traefik.http.middlewares.limit.buffering.memRequestBodyBytes=50000000
# - traefik.http.middlewares.limit.buffering.memResponseBodyBytes=50000000
# # Optional part for traefik middlewares
# - traefik.http.routers.jira.middlewares=local-ipwhitelist@file
postgresql:
image: docker.io/library/postgres:16-alpine
container_name: jira-psql
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
start_period: 20s
interval: 30s
retries: 5
timeout: 5s
expose:
- 5432 # psql service
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/jira/psql:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: ${PG_PASS:-jira}
POSTGRES_USER: ${PG_USER:-jira}
POSTGRES_DB: ${PG_DB:-jira}
networks:
- internal-db-network
networks:
atlassian-network:
external: true
internal-db-network:
internal: true