Atlassian has stopped selling the small server licenses and I have been thinking for a long time how to deal with this. Since I still want to use my installation for a long time, I implemented the following measures:
Measure 1: I use Docker exclusively
I run all Atlassian tools as Docker containers. Even older, native installations can be converted to a Docker installation via database dumps. These can then be conveniently run on an intel Nuc or a Synology disk station in the Homelab.
version: '2'
services:
jira:
image: atlassian/jira-software
container_name: jira_application
depends_on:
- db
restart: always
environment:
TZ: 'Europe/Berlin'
ports:
- 8080:8080
volumes:
- ./jira-data:/var/atlassian/application-data/jira
networks:
- jira-network
db:
restart: always
image: postgres:latest
container_name: jira_db
volumes:
- ./postgresql:/var/lib/postgresql/data
environment:
- POSTGRES_USER=jira
- POSTGRES_PASSWORD=jirapass
- POSTGRES_DB=jira
networks:
- jira-network
networks:
jira-network:
version: '2'
services:
confluence:
container_name: confluence_server
image: atlassian/confluence-server:latest
restart: always
environment:
TZ: "Europe/Berlin"
volumes:
- ./confluence:/var/atlassian/application-data/confluence/
ports:
- 8080:8080
networks:
- confluence-network
depends_on:
- db
db:
image: postgres:latest
container_name: confluence_postgres
restart: always
volumes:
- /postgresql:/var/lib/postgresql/data
environment:
- POSTGRES_USER=confluencedb
- POSTGRES_PASSWORD=confluence-password
- POSTGRES_DB=confluenceUser
networks:
- confluence-network
networks:
confluence-network:
version: '2'
services:
bamboo:
container_name: bamboo_server
image: atlassian/bamboo-server
restart: always
environment:
TZ: "Europe/Berlin"
volumes:
- ./bamboo-data:/var/atlassian/application-data/bamboo
ports:
- 8080:8080
networks:
- bamboo-network
depends_on:
- db
db:
image: postgres:latest
container_name: bamboo-postgres
restart: always
volumes:
- ./postgresql:/var/lib/postgresql/data
environment:
- POSTGRES_USER=bamboo
- POSTGRES_PASSWORD=bamboo
- POSTGRES_DB=bamboo
networks:
- bamboo-network
networks:
bamboo-network:
Measure 2: Backups of the databases and images
Of course, daily remote database backups play a big role in my disaster recovery strategy. But I also backed up the installation images. A Docker image can be archived with the following command:
$ docker save -o bamboo-7.2.3-image.tar atlassian/bamboo-server
$ ocker load -i bamboo-7.2.3-image.tar
Action 3: Create USB installation stick
I have backed up my docs, all installation archives, postgres data directories and configurations to a USB stick. As I said, the DB backup is actually the most important thing because the activated license is also in the database.