All Projects โ†’ yoshinorin โ†’ docker-redmine-orchestration

yoshinorin / docker-redmine-orchestration

Licence: MIT License
๐Ÿณ An easy docker-compose for Redmine (Nginx + Unicorn + MariaDB)

Programming Languages

ruby
36898 projects - #4 most used programming language
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to docker-redmine-orchestration

database
Aplus Framework Database Library
Stars: โœญ 147 (+716.67%)
Mutual labels:  mariadb
redmine tracker
Multi platform application to track time and synchronize it into Redmine.
Stars: โœญ 14 (-22.22%)
Mutual labels:  redmine
k8s-lemp
LEMP stack in a Kubernetes cluster
Stars: โœญ 74 (+311.11%)
Mutual labels:  mariadb
MySqlCdc
MySQL/MariaDB binlog replication client for .NET
Stars: โœญ 71 (+294.44%)
Mutual labels:  mariadb
thinkorm
A flexible, lightweight and powerful Object-Relational Mapper for Node.js. Support TypeScript!!
Stars: โœญ 33 (+83.33%)
Mutual labels:  mariadb
redminetoolbar
Firefox add-on to improve handling of Redmine projects
Stars: โœญ 27 (+50%)
Mutual labels:  redmine
redmine default custom query
Redmine plugin for setting default custom query of Issues for each project
Stars: โœญ 67 (+272.22%)
Mutual labels:  redmine
redmine issue todo lists
Organize Redmine issues in to-do lists by manually ordering their priority.
Stars: โœญ 20 (+11.11%)
Mutual labels:  redmine
redtimer
RedTimer - Redmine Time Tracker
Stars: โœญ 59 (+227.78%)
Mutual labels:  redmine
LaraSible
A complete ansible playbook for create a hosting envorinment with Nginx, PHP-FPM, Redis and MariaDB for Laravel Framework on Linux
Stars: โœญ 15 (-16.67%)
Mutual labels:  mariadb
deployer
Redmine plugin to group issues into deploys and send notifications when needed
Stars: โœญ 14 (-22.22%)
Mutual labels:  redmine
dockerX
Examples of amazing Docker/Docker-Compose/Docker Swarm technologies
Stars: โœญ 17 (-5.56%)
Mutual labels:  mariadb
kanban
Kanban plugin for redmine
Stars: โœญ 68 (+277.78%)
Mutual labels:  redmine
mysql-to-laravel-migration
Generate Laravel migration files from SQL
Stars: โœญ 18 (+0%)
Mutual labels:  mariadb
vue3.0-elemenplus-admin-template
ไธ€ไธชๅŸบไบŽVue3.0ๅ’ŒElement-plus็š„ๅŽๅฐ็ฎก็†ๆจกๆฟ๏ผŒไธ€ไธชไฝฟ็”จKoa2ไฝœไธบๅŽๅฐ็จ‹ๅบไฝฟ็”จMongoDBไฝœไธบ็ผ“ๅญ˜ๆ•ฐๆฎๅบ“ๅ’ŒMariaDBไฝœไธบๆ•ฐๆฎ็š„ๅŽๅฐ็ฎก็†ๆจกๆฟ็ณป็ปŸ
Stars: โœญ 20 (+11.11%)
Mutual labels:  mariadb
typetta
Node.js ORM written in TypeScript for type lovers.
Stars: โœญ 44 (+144.44%)
Mutual labels:  mariadb
zenit
Zenit is a daemon collector for metrics and log parsers for any MySQL variant and ProxySQL
Stars: โœญ 24 (+33.33%)
Mutual labels:  mariadb
prometheus-mysql-exporter
Prometheus MySQL Exporter
Stars: โœญ 33 (+83.33%)
Mutual labels:  mariadb
docker-lamp
(Linux) + Apache + MariaDB (MySQL) + PHP 7 on Docker.
Stars: โœญ 46 (+155.56%)
Mutual labels:  mariadb
carpenter
Carpenter is a tool to manage DB schema and data
Stars: โœญ 41 (+127.78%)
Mutual labels:  mariadb

docker-redmine-orchestration

A easy and fast docker-compose for Redmine (Nginx + Unicorn + MariaDB)

ๆ—ฅๆœฌ่ชžใฏใ“ใกใ‚‰

Architecture

  • MariaDB 10.5.x
  • Nginx 1.20 (Also you can ignore it)
  • Ruby 2.4.1
  • Unicorn 5.5.5

what is difference between official docker-redmine ?

- Official This application
DB MySQL MariaDB
Web server - Nginx (Also you can ignore it)
Application server webrick or passenger unicorn (Include unicorn worker killer)
Version Control System - Bundled with git

Requirements

  • Higher than Docker compose 3

Overview

Default installed VCS

The git were installed in the Redmine container and the Redmine's configuration.yml has been already setted up to link git.

Install and execute

Install

  • At first. Download Redmine's source code using by ./redmine/redmine_download.sh.

  • Second. Please change Redmine's setting.

    • Redmine's setting files are contain in the ./redmine/src/config directory.

Docker compose up

Please execute docker-compose up in root directory.

docker-compose up

Please access http://yourdomain:3000.

After first build, please change RAILS_MIGRATE value to 0 in the docker-compose.yml.

Settings

MariaDB

Please change ./mariadb/config/my.cnf. Also you can change it after build image.

Character set

Default character set is utf8mb4.

User and password

User and paswword are decided when build docker image. You can specify user and password using by docker-compose.yml.

  mariadb:
    build: ./mariadb
    container_name: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: mypass
      MYSQL_USER: redmine
      MYSQL_DATABASE: redmine

You can remove MYSQL_ROOT_PASSWORD key in docker-compose.yml, after first docker image build.

If you change MYSQL_USER and MYSQL_DATABASE. You have to change ./redmine/src/config/database.yml and DB_PING_USER and DB_PING_USER_PASSWORD.

  redmine:
    build: ./redmine
    container_name: redmine
    environment:
      RAILS_MIGRATE: 1
      PLUGINS_MIGRATE: 1
      DB_PING_USER: redmine
      DB_PING_USER_PASSWORD: redmine 

Redmine container have to start after MariaDB container. So, DB_PING_USER and DB_PING_USER_PASSWORD are wait to start MariaDB container.

Directory connecting

The default setting you can't connect MariaDB directly. If you want to connect directly, please add below key in mariadb key.

    ports:
      - "3306:3306"

You can connect MariaDB directory using by 3306 port. Also you can change port number.

nginx

Please change ./nginx/config/nginx.conf. Also you can change it after build image.

Ignore nginx

If you want ingnore nginx (for example you have already use other webserver.) please commented out nginx key in docker-compose.yml. And add below key in redmine key.

    ports:
      - "3000:3000"

HTTPS

You have to change ./nginx/config/nginx.conf and docker-compose.yml.

At first please configure ./nginx/config/nginx.conf. And change server settings. Below is example.

server {
        #NOTE : for TLS connection.
        ssl on;
        ssl_prefer_server_ciphers on;
        ssl_protocols TLSv1.2;
        ssl_certificate <key's path in nginx container>
        ssl_certificate_key <key's path in nginx container>

Next please change docker-compose.yml. You have to put key on host machine. And mount these keys on nginx container. So you have to specify host key's path and mount volume path in docker-compose.yml.

    #NOTE : TLS key's path for HTTPS
     - <host ssl_certificate key's path> : <nginx.conf ssl_certificate key's path>
     - <host ssl_certificate_key key's path> : <nginx.conf  ssl_certificate_key key's path>

Please change Redmine connection settings to HTTPS using by Redmine's management console.

Redmine

Please change ./redmine/src/config. Also you can change it after build image.

Install plugins

Please put plugins in the ./redmine/src/plugins directory.

And please set PLUGINS_MIGRATE key's value to 1.

  redmine:
    build: ./redmine
    container_name: redmine
    environment:
      RAILS_MIGRATE: 1
      PLUGINS_MIGRATE: 1

After that these plugins were installed

All plugins will install every time when docker compose up. This behavior for flexible install. (User can select what plugin do you use and uninstall every time easily. On the other hand, plugins install when every time starts docker. But, theses process is no effect on data.)

Unicorn server

You can configure unicorn server settings using by docker-compose.yml below directive.

NAME PORPOSE VALUE(DEFAULT)
UNICORN_WORKER_PROCESS Number of unicorn worker processes 2
UNICORN_TIMEOUT Timeout 60
UNICORN_WOKER_KILLER_MEMORY_MIN Memory min threshold. Unit is MB. 192
UNICORN_WOKER_KILLER_MEMORY_MAX Memory max threshold. Unit is MB. 256
UNICORN_WOKER_KILLER_CHECK_CYCLE Unicorn worker killer check cycle. 16
UNICORN_WOKER_KILLER_VERBOSE Unicorn worker killer logging. false

About unicorn-worker-killer settings, please see unicorn-worker-killer repository.

Container's time zone

If you want to change container's time zone. Please add TZ key to each container using by docker-compose.yml.

Below is example.

  mariadb-storage:
    build: ./storage/mariadb-storage
    container_name: mariadb-storage
    environment:
      TZ: Asia/Tokyo
    volumes:
     - ./storage/mariadb-storage/data:/var/lib/mysql

git

If you integrate git repositories with Redmine. Please create repositories below directory.

You can create some repositories in the directory.

./storage/git-storage/repositories/<your-repository>

And above directory are mount below directory in Redmine container.

/usr/src/git/<your-repository>

Back up

Please execute backup.sh. Back up files are create in buckups directory by tar format.

Others

You can customize other settings using by docker-compose.yml

Direcroty Hierarchy

.
โ”œโ”€โ”€ backups
โ”œโ”€โ”€ backup.sh
โ”œโ”€โ”€ circle.yml
โ”œโ”€โ”€ doc
โ”‚   โ”œโ”€โ”€ img
โ”‚   โ”‚   โ””โ”€โ”€ overview.png
โ”‚   โ”œโ”€โ”€ overview.pptx
โ”‚   โ””โ”€โ”€ README_JA.md
โ”œโ”€โ”€ docker-compose.yml
โ”œโ”€โ”€ images
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ logs
โ”‚   โ”œโ”€โ”€ nginx
โ”‚   โ””โ”€โ”€ redmine
โ”œโ”€โ”€ mariadb
โ”‚   โ”œโ”€โ”€ config
โ”‚   โ”‚   โ””โ”€โ”€ my.cnf
โ”‚   โ””โ”€โ”€ Dockerfile
โ”œโ”€โ”€ nginx
โ”‚   โ”œโ”€โ”€ config
โ”‚   โ”‚   โ””โ”€โ”€ nginx.conf
โ”‚   โ””โ”€โ”€ Dockerfile
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ redmine
โ”‚   โ”œโ”€โ”€ docker-entrypoint.sh
โ”‚   โ”œโ”€โ”€ Dockerfile
โ”‚   โ”œโ”€โ”€ Gemfile
โ”‚   โ”œโ”€โ”€ README.md
โ”‚   โ”œโ”€โ”€ redmine_download.sh
โ”‚   โ””โ”€โ”€ src
โ”‚       โ””โ”€โ”€ config
โ”‚           โ”œโ”€โ”€ configuration.yml
โ”‚           โ”œโ”€โ”€ database.yml
โ”‚           โ””โ”€โ”€ unicorn.rb
โ””โ”€โ”€ storage
    โ”œโ”€โ”€ git-storage
    โ”‚   โ””โ”€โ”€ repositories
    โ”‚       โ””โ”€โ”€ README.md
    โ”œโ”€โ”€ mariadb-storage
    โ”‚   โ””โ”€โ”€ data
    โ””โ”€โ”€ redmine-files
        โ””โ”€โ”€ files
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].