Taiga is a project management platform for startups and agile developers & designers who want a simple, beautiful tool that makes work truly enjoyable.
There is an example project available at benhutchins/docker-taiga-example that provides base configuration files available for you to modify and allows you to easily install plugins. I recommend you clone this repo and modify the files, then use it's provided scripts to get started quickly.
git clone https://github.com/benhutchins/docker-taiga-example.git mytaiga && cd mytaiga
vi taiga-conf/local.py # configuration for taiga-back
vi taiga-conf/conf.json # configuration for taiga-front
vi docker-compose.yml # update environmental variables
docker-compose up
Or to use this container directly, run:
docker run -itd \
--link taiga-postgres:postgres \
-p 80:80 \
-e TAIGA_HOSTNAME=taiga.mycompany.net \
-v ./media:/usr/src/taiga-back/media \
benhutchins/taiga
See Summarize
below for a complete example. Partial explanation of arguments:
--link
is used to link the database container. SeeConfigure Database
below for more details.
Once your container is running, use the default administrator account to login: username is admin
, and the password is 123123
.
If you're having trouble connecting, make sure you've configured your TAIGA_HOSTNAME
. It will default to localhost
, which almost certainly is not what you want to use.
Use the following environmental variables to generate a local.py
for taiga-back.
-e TAIGA_HOSTNAME=
(required set this to the server host liketaiga.mycompany.com
)-e TAIGA_SSL=True
(seeEnabling HTTPS
below)-e TAIGA_SECRET_KEY
(set this to a random string to configure theSECRET_KEY
value for taiga-back; defaults to an insecure random string)-e TAIGA_SLEEP
(set to wait max$TAIGA_SLEEP
number of seconds for the database to come up, before starting the application; the connection is checked once per second)-e TAIGA_SKIP_DB_CHECK
(set to skip the database check that attempts to automatically setup initial database)-e TAIGA_DB_CHECK_ONLY
(set to stop the container right after initializing the DB)-e TAIGA_COMPONENT
(set to eitherfront
orback
to execute just one of the two components; leave unset for launching both in the same container)-e TAIGA_ENABLE_EMAIL=True
(seeConfiguring SMTP
below)
Note: Database variables are also required, see Using Database server
below. These are required even when using a container for your database.
The above example uses --link
to connect Taiga with a running postgres container. This is probably not the best idea for use in production, keeping data in docker containers can be dangerous.
If you want to run your database within a docker container, simply start your database server before starting your Taiga container. Here is a simple example pulled from postgres's guide.
docker run --name taiga-postgres -e POSTGRES_PASSWORD=mypassword -d postgres
Use the following, required, environment variables for connecting to another database server:
-e TAIGA_DB_NAME=...
(defaults topostgres
)-e TAIGA_DB_HOST=...
(defaults to the address of a linkedpostgres
container)-e TAIGA_DB_USER=...
(defaults topostgres)
)-e TAIGA_DB_PASSWORD=...
(defaults to the password of the linkedpostgres
container)
If the TAIGA_DB_NAME
specified does not already exist on the provided PostgreSQL server, it will be automatically created the the Taiga's installation scripts will run to generate the required tables and default demo data.
An example docker run
command using an external database:
docker run \
--name mytaiga \
-e TAIGA_DB_HOST=10.0.0.1 \
-e TAIGA_DB_USER=taiga \
-e TAIGA_DB_PASSWORD=mypassword \
-itd \
benhutchins/taiga
Taiga has an optional dependency, taiga-events. This adds additional usability to Taiga. To support this, there is an optional docker dependency available called docker-taiga-events. It has a few dependencies of its own, so this is how you run it:
# Setup RabbitMQ and Redis services
docker run --name taiga-redis -d redis:3
docker run --name taiga-rabbit -d --hostname taiga rabbitmq:3
# Start up a celery worker
docker run --name taiga-celery -d --link taiga-rabbit:rabbit celery
# Now start the taiga-events server
docker run --name taiga-events -d --link taiga-rabbit:rabbit benhutchins/taiga-events
Then append the following arguments to your docker run
command running your benhutchins/taiga
container:
--link taiga-rabbit:rabbit
--link taiga-redis:redis
--link taiga-events:events
See the example below in Summarize
section for an example docker run
command.
If you want to enable support for HTTPS, you'll need to specify all of these
additional arguments to your docker run
command.
-e TAIGA_SSL=True
-v $(pwd)/ssl.crt:/etc/nginx/ssl/ssl.crt:ro
-v $(pwd)/ssl.key:/etc/nginx/ssl/ssl.key:ro
Or create a folder called ssl
, place your ssl.crt
and ssl.key
inside
this directory and then mount it with:
-e TAIGA_SSL=True
-v $(pwd)/ssl/:/etc/nginx/ssl/:ro
If you have a reveser proxy that is already handling https set TAIGA_SSL_BY_REVERSE_PROXY
:
-e TAIGA_SSL_BY_REVERSE_PROXY=True
The value of TAIGA_SSL
will then be ignored and taiga will not handle https,
it will however set all links to https.
If you want to use an SMTP server for emails, you'll need to specify all of
these additional arguments to your docker run
command.
-e TAIGA_ENABLE_EMAIL=True
-e [email protected]
-e TAIGA_EMAIL_USE_TLS=True
(only if you want to use tls)-e TAIGA_EMAIL_HOST=smtp.google.com
-e TAIGA_EMAIL_PORT=587
-e [email protected]
-e TAIGA_EMAIL_PASS=super-secure-pass phrase thing!
Note: This can also be configured directly inside your own config file, look
at this example's
setup where it specifies a taiga-conf/local.py
. You can then configure this
and other settings available in Taiga.
If you want to use LDAP authenticate, you'll need to specify all of
these additional arguments to your docker run
command.
-e LDAP_AUTH_ENABLE=True
-e LDAP_BIND_DN=<bind account dn>
-e LDAP_BIND_PASSWORD=<bind password>
-e LDAP_SEARCH_BASE=<base>
-e LDAP_SERVER=ldap://<ldap_server_host_name>
Other LDAP option can take a look at plugin docs https://github.com/Monogramm/taiga-contrib-ldap-auth-ext
Here are supported integrations, with their respective env vars:
- Github:
TAIGA_ENABLE_GITHUB_IMPORTER
TAIGA_GITHUB_CLIENT_ID
TAIGA_GITHUB_CLIENT_SECRET
- Trello:
TAIGA_ENABLE_TRELLO_IMPORTER
TAIGA_TRELLO_API_KEY
TAIGA_TRELLO_SECRET_KEY
- JIRA:
TAIGA_ENABLE_JIRA_IMPORTER
TAIGA_JIRA_CONSUMER_KEY
TAIGA_JIRA_CERT_FILE
(file path)TAIGA_JIRA_PUB_CERT_FILE
(file path)
- Asana:
TAIGA_ENABLE_ASANA_IMPORTER
TAIGA_ASANA_APP_ID
TAIGA_ASANA_APP_SECRET
- Slack:
SLACK_INTEGRATION_ENABLE=true
For now, importers have to be enabled by hand in the frontend config:
{
// ...
"importers": ["github", "trello", "jira", "asana"],
// ...
}
Uploads to Taiga go to the media folder, located by default at /usr/src/taiga-back/media
.
Use -v /my/own/media:/usr/src/taiga-back/media
as part of your docker run command to ensure uploads are not lost easily.
To sum it all up, if you want to run Taiga without using docker-compose, run this:
docker run --name taiga-postgres -d -e POSTGRES_PASSWORD=password postgres
docker run --name taiga-redis -d redis:3
docker run --name taiga-rabbit -d --hostname taiga rabbitmq:3
docker run --name taiga-celery -d --link taiga-rabbit:rabbit celery
docker run --name taiga-events -d --link taiga-rabbit:rabbit benhutchins/taiga-events
docker run -itd \
--name taiga \
--link taiga-postgres:postgres \
--link taiga-redis:redis \
--link taiga-rabbit:rabbit \
--link taiga-events:events \
-p 80:80 \
-e TAIGA_HOSTNAME=$(docker-machine ip default) \
-v ./media:/usr/src/taiga-back/media \
benhutchins/taiga
Again, you can avoid all this by using benhutchins/docker-taiga-example and then just run docker-compose up
.
If you want to get the latest and greatest, you can clone this repo, then update Taiga to the latest by running:
git clone https://github.com/benhutchins/docker-taiga.git && cd docker-taiga/
git submodule update --init --remote
docker-compose up -d # this will build and then start taiga locally