Bitbucket
— это сервис для хостинга кода и совместной работы. Другими словами: это Git репозиторий, со своими правами и разграничениями для команд.
Требования:
- Система: Ubuntu
- Установленный: Docker, docker-compose
- CPU: 4 vcpu
- RAM: 8 Gb
- HDD: На ваше усмотрение (Рекомендуется 100 GB)
Шаг 1. Создаём структуру
1
| sudo mkdir -p /opt/bitbucket/activate
|
И файл:
1
| sudo nano /opt/bitbucket/docker-compose.yaml
|
Наполняем содержимым:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| version: '3.7'
services:
nginx:
container_name: nginx
image: nginx:alpine
ports:
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/certs:/etc/nginx/certs:ro
depends_on:
- bitbucket
networks:
- bitbucket-proxy
bitbucket:
container_name: bitbucket
image: atlassian/bitbucket:8.16.3
restart: unless-stopped
volumes:
- var:/var/atlassian/application-data/bitbucket
- opt:/opt/atlassian/bitbucket
- ./activate:/opt/atlassian/atlassian-agent/
environment:
- 'JVM_MINIMUM_MEMORY=2048m'
- 'JVM_MAXIMUM_MEMORY=4096m'
- 'SERVER_PROXY_NAME=bitbucket.domain.local'
- 'SERVER_SECURE=true'
- 'SERVER_SCHEME=https'
- 'SERVER_PROXY_PORT=443'
- 'TZ=Europe/Moscow'
networks:
- bitbucket-proxy
db:
image: postgres:15-alpine
environment:
POSTGRES_USER: bitbucket
POSTGRES_PASSWORD: ChangeME
POSTGRES_DB: bitbucketdb
PGDATA: /data/postgres
volumes:
- ./postgres:/data/postgres
ports:
- "5432:5432"
restart: unless-stopped
networks:
- bitbucket-proxy
networks:
bitbucket-proxy:
volumes:
var:
external: false
opt:
external: false
|
Сохраняем, создаём директорию для nginx
1
| mkdir -p /opt/bitbucket/nginx/certs
|
И файл конфигурации:
1
| sudo nano /opt/bitbucket/nginx/nginx.conf
|
Наполняем:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| events {}
http {
server {
listen 443 ssl;
server_name bitbucket.domain.local; #Меняйте на своё имя
ssl_certificate /etc/nginx/certs/selfsigned.crt;
ssl_certificate_key /etc/nginx/certs/selfsigned.key;
location / {
proxy_pass http://bitbucket:7990;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port 443;
proxy_redirect off;
}
}
}
|
Далее создаём самоподписанные сертификаты:
Переходим в директорию:
1
| cd /opt/bitbucket/nginx
|
Выполняем команду:
1
| openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout certs/selfsigned.key -out certs/selfsigned.crt -subj "/C=RU/ST=Moscow/L=My/O=ITZM/OU=TECH/CN=bitbucket.domain.local"
|
После переходим в директорию с docker-compose.yaml:
И запускаем сервис:
Шаг 2. Настройка в веб-интерфейсе
Выбираем язык. Русского Bitbucket нет, только English.

Также здесь выбираем Database - External
Вводим настройки для подключения, которым мы указали в docker-compose файле. Затем нажимаем Test/Next.

Шаг 3. Активация
Итак, мы подходим к моменту активации.

Процесс активации я подробно описал в Telegram.
Там же отвечаю на вопросы и обновляю инструкции при необходимости
Присоединяйся

Шаг 4. Завершаем настройку в веб-интерфейсе
После активации заходим используя данные нашего локального admin’a.
Создаём окружение и репозиторий для хранения кода.

Далее идёт интуитивно понятная настройка используя кнопку “Далее”.
В настройках меняете адрес на https://bitbucket.domain.local
Установка завершена. Bitbucket готов к работе.