Newer
Older
gitbucket / README.md
# docker container for gitbucket

[![Build Status](https://jenkins.pgollor.de/job/gitbucket-docker-master/badge/icon)](https://jenkins.pgollor.de/job/gitbucket-docker-master/)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/pgollor)

This docker container of [gitbucket](https://github.com/gitbucket/gitbucket.git) is in beta state!


## Table of contents 

  - [Usage](#section-id-5)
    - [Dependencies](#section-id-7)
    - [Installation](#section-id-11)
    - [Configuration](#section-id-38)
    - [Update](#section-id-46)
    - [Plugins](#section-id-71)
    - [Backup](#section-id-76)
  - [Troubleshooting](#section-id-82)
    - [Error 503 on first start](#section-id-84)
  - [Contact and Contribution](#section-id-95)
  - [TODO](#section-id-100)
  - [Inspirations](#section-id-105)
  - [License](#section-id-110)
  

<div id='section-id-5'/>

## Usage

<div id='section-id-7'/>

### Dependencies
- [docker](https://docs.docker.com/engine/installation/)
- [docker-compose](https://docs.docker.com/compose/install/)

<div id='section-id-11'/>

### Update

Please make a backup from the hole directory bevor update your repsitory and commit your changes!

#### from 4.19.3 to 4.20.0
You have to backup your `gitbucket.conf` because this config does not exist in the repository any more.
You have to manage the config file manually.
The new install script will create a local config fiel as copy from `gitbucket.conf.example` and generate new passwords.


### Installation

1. Get code from repository:
```
git clone https://gitbucket.pgollor.de/git/docker/gitbucket.git
cd gitbucket
```

2. Execute install script
```
./install.sh
```

3. Change the confoguration and start with:
```
docker-compose up -d
```

4. Open `127.0.0.1:8080` and be habby. :-)
Default user and passwort are both root.


<div id='section-id-38'/>

### Configuration
Please use the configuration file `gitbucket.conf` for your personal changes.
There are three configs for gitbucket:
- `GITBUCKET_BIND`: ip address to bind to
- `GITBUCKET_WEB_PORT`: web port to bind to
- `GITBUCKET_SSH_PORT`: ssh port to bind to


<div id='section-id-46'/>

### Update
Update your gitbucket image in three steps.
But first of all: **MAKE A BACKUP!!!**

1. Commit your local changes. Changes in `gitbucket.conf` will be ignored!

2. get the new image
Shutdown and remove your images. This will not delete your mysql database volume.
```
docker-compose down
```
After that get the new image and start it:
```
docker-compose pull
docker-compose up -d --remove-orphans
```

3. cleanup your docker environment
This step is optional. Please do this only if you understand the next line.
```
docker rmi -f $(docker images -f "dangling=true" -q)
```



<div id='section-id-71'/>

### Plugins
To use plugins download the plugin and move it into `data/plugins`.
After that restart the gitbucket container with `docker-compose restart main-gitbucket`.


<div id='section-id-76'/>

### Backup
For backuping the mysql database and the repositories you could use the `backup.sh` script and combine it with a daily cronjob.
This script will create a compressed backup and keep the files 10 days in the backup directory.
All files which are older then 10 days will be deleted.


<div id='section-id-82'/>

## Troubleshooting

<div id='section-id-84'/>

### Error 503 on first start
Please check the gitbucket log files with
```
docker-compose logs main-gitbucket
```
If you get `Could not connect to address=(host=172.22.2.251)` as error:
Please restart the gitbucket container with `docker-compose restart main-gitbucket` because the mariadb container needs some time to run completly at the first start.
After that it should be work.
If doesn't please contact me via `issue@pgollor.de` because gitbucket does not allow issues for guests.


<div id='section-id-95'/>

## Contact and Contribution
You can write me an email ( `kalle@pgollor.de` ) or you could register here as an user to contribute to this project.
After register please fork this repository and create pull reqeusts with your changes or add an issue.


<div id='section-id-100'/>

## TODO
- check gitbucket.war hash after download
- maybe a nginx container with ssl???


<div id='section-id-105'/>

## Inspirations
I got some inspirations for this project from:
- https://github.com/mailcow/mailcow-dockerized


<div id='section-id-110'/>

## License
[![cc-bc-sa](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/): Please see [license](LICENSE.md)

[Gitbucket license](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)