Coder Social home page Coder Social logo

taiga-docker's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

taiga-docker's Issues

Getting cross origin problems.

Hi,
I had to modify port numbers for my purposes. This is my setup.sh file. I had to run taiga-front on 8081.

#! /usr/bin/env bash

API_NAME="softtech.gitlab";

echo API_NAME: $API_NAME

mkdir -p /data/postgres

#docker pull ipedrazas/taiga-back
#docker pull ipedrazas/taiga-front


docker run -d --name postgres2  -v /data/postgres:/var/lib/postgresql/data postgres
# postgres needs some time to startup
sleep 5
docker run -d --name taiga-back  -p 8000:8000 -e API_NAME=$API_NAME  --link postgres2:postgres ipedrazas/taiga-back
docker run -d --name taiga-front -p 8081:80 -e API_NAME=$API_NAME --link taiga-back:taiga-back --volumes-from taiga-back ipedrazas/taiga-front

docker run -it --link postgres2:postgres --rm postgres sh -c "su postgres --command 'createuser -h "'$POSTGRES_PORT_5432_TCP_ADDR'" -p "'$POSTGRES_PORT_5432_TCP_PORT'" -d -r -s taiga'"
docker run -it --link postgres2:postgres --rm postgres sh -c "su postgres --command 'createdb -h "'$POSTGRES_PORT_5432_TCP_ADDR'" -p "'$POSTGRES_PORT_5432_TCP_PORT'" -O taiga taiga'";
docker run -it --rm --link postgres2:postgres ipedrazas/taiga-back bash regenerate.sh

Setup runs successfully but when I load the page I get errors. This is not too important I guess. Here is the chrome log.

Initialize navigation urls
Initialize api urls
Using the default logging exception handler.
Initialize resources
Initialize application
Analytics: no acount id provided. Disabling.
TypeError: Cannot read property 'get' of null
    at link (http://gitlab.softtech:8081/js/app.js?v=1437417084614:23656:44)
    at http://gitlab.softtech:8081/js/libs.js?v=1437417084604:13:9603
    at invokeLinkFn (http://gitlab.softtech:8081/js/libs.js?v=1437417084604:13:9721)
    at nodeLinkFn (http://gitlab.softtech:8081/js/libs.js?v=1437417084604:12:27886)
    at http://gitlab.softtech:8081/js/libs.js?v=1437417084604:13:5035
    at processQueue (http://gitlab.softtech:8081/js/libs.js?v=1437417084604:14:24061)
    at http://gitlab.softtech:8081/js/libs.js?v=1437417084604:14:24328
    at Scope.$eval (http://gitlab.softtech:8081/js/libs.js?v=1437417084604:15:5292)
    at Scope.$digest (http://gitlab.softtech:8081/js/libs.js?v=1437417084604:15:3032)
    at Scope.$apply (http://gitlab.softtech:8081/js/libs.js?v=1437417084604:15:5697)
    at http://gitlab.softtech:8081/js/libs.js?v=1437417084604:14:30625
    at completeOutstandingRequest (http://gitlab.softtech:8081/js/libs.js?v=1437417084604:12:5843)
    at http://gitlab.softtech:8081/js/libs.js?v=1437417084604:12:8857 <div tg-working-on="">

Then when I go to signup page to create an account, I get this when signing up.

OPTIONS http://softtech.gitlab:8000/api/v1/auth/register 
XMLHttpRequest cannot load http://softtech.gitlab:8000/api/v1/auth/register. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://gitlab.softtech:8081' is therefore not allowed access. The response had HTTP status code 504.
XHR failed loading: POST "http://softtech.gitlab:8000/api/v1/auth/register".
TypeError: Cannot read property '_error_message' of null
    at onErrorSubmit (auth.coffee:274)
    at processQueue (angular.js:14454)
    at angular.js:14470
    at Scope.$eval (angular.js:15719)
    at Scope.$digest (angular.js:15530)
    at Scope.$apply (angular.js:15824)
    at angular.js:16119
    at completeOutstandingRequest (angular.js:5370)
    at angular.js:5642

Any idea?

Not sending invitation email

Hi,
I'm trying to make taiga.io sends invitation emails. Actually, the local.py is correctly configured, as reported in the docs. I'll copy here the part for email configuration:

# MAIL OPTIONS
DEFAULT_FROM_EMAIL = "[email protected]"
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
EMAIL_USE_TLS = True
EMAIL_HOST = "smtp.myhost.io"
EMAIL_HOST_USER = "[email protected]"
EMAIL_HOST_PASSWORD = "XXX"
EMAIL_PORT = 587

Checking the logs using docker logs taiga-back It reports all the attempts to send emails (without reporting an error) displaying the whole email in the log. Checking a single email in the log I found that the invitation link reports the wrong url:

Hi,
you have been invited to the project 'RebAl'.
If you want to join to this project go to http://taiga-front:9001/invitation/alfanumericcode for accept > this invitation.

Anyone managed to solve this?

Add info on what to do on first run

Just to simplify things for the newcomer (me) add something like this to the README:

Once you've successfully run run-taiga.sh start a web browser and point it to http://localhost:80. You should be greeted by a login page. The administrators username is admin, and the password is 123123.

The backend logs about django

I run "docker logs taiga-back",the log shows
"Trying import local.py settings...
WARNING: Using backend without django-transaction-hooks support, auto delete files will not work.
"
And I login or register the accout,it show
"Something happened and our Oompa Loompas are working on it.
Try reloading again soon."

[taiga-backend] "django.db.backends.postgresql_psycopg2" in settings/local.py

According to taigaio/taiga-back#272, django.db.backends.postgresql_psycopg2 needs to be transaction_hooks.backends.postgresql_psycopg2 in local.py. The stable branch is up to date as of commit taigaio/taiga-back@d984557.

A simple rebuild and push to docker hub would possibly solve this (if it doesn't introduce more errors).

I may give it a shot myself. As it stands, taiga doesn't create any new items because of it:

Request repr():
<WSGIRequest
path:/api/v1/userstories,
GET:<QueryDict: {}>,
POST:<could not parse>,
COOKIES:{},
META:{'API_NAME': 'runt.local',
 'CONTENT_LENGTH': '338',
 'CONTENT_TYPE': 'application/json',
 'DEBIAN_FRONTEND': 'noninteractive',
 'DJANGO_SETTINGS_MODULE': 'settings',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HOME': '/root',
 'HOSTNAME': 'd4a6a0f10d25',
 'HTTP_ACCEPT': 'application/json, text/plain, */*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en',
 'HTTP_AUTHORIZATION': 'Bearer '
                       'eyJ1c2VyX2F1dGhlbnRpY2F0aW9uX2lkIjo0fQ:1ZcgpI:WnZpOMloCH7Iw90Th34jAsBJCc4',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DNT': '1',
 'HTTP_HOST': 'runt.local:8000',
 'HTTP_ORIGIN': 'http://runt.local',
 'HTTP_REFERER': 'http://runt.local/project/admin-ipip-neo/kanban',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) '
                    'AppleWebKit/537.36 (KHTML, like Gecko) '
                    'Chrome/45.0.2454.93 Safari/537.36',
 'HTTP_X_SESSION_ID': 'd351fe19875fb543214102b800300e1f3b73106a',
 'LANG': 'en_US.UTF-8',
 'LC_TYPE': 'en_US.UTF-8',
 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
 'PATH_INFO': '/api/v1/userstories',
 'POSTGRES_ENV_LANG': 'en_US.utf8',
 'POSTGRES_ENV_PGDATA': '/var/lib/postgresql/data',
 'POSTGRES_ENV_PG_MAJOR': '9.4',
 'POSTGRES_ENV_PG_VERSION': '9.4.4-1.pgdg80+1',
 'POSTGRES_NAME': '/taiga-back/postgres',
 'POSTGRES_PORT': 'tcp://172.17.0.13:5432',
 'POSTGRES_PORT_5432_TCP': 'tcp://172.17.0.13:5432',
 'POSTGRES_PORT_5432_TCP_ADDR': '172.17.0.13',
 'POSTGRES_PORT_5432_TCP_PORT': '5432',
 'POSTGRES_PORT_5432_TCP_PROTO': 'tcp',
 'PYTHON_PIP_VERSION': '7.1.0',
 'PYTHON_VERSION': '3.4.3',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '192.168.1.148',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'POST',
 'RUN_MAIN': 'true',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'd4a6a0f10d25',
 'SERVER_PORT': '8000',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'TZ': 'UTC',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}>
-------------------------------------------------------------------------------
[18/Sep/2015 11:10:42] "POST /api/v1/userstories HTTP/1.1" 500 37
ERROR:2015-09-18 11:11:08,649: Internal Server Error: /api/v1/userstories
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/site-packages/django/core/handlers/base.py", line 111, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/taiga/taiga/base/api/viewsets.py", line 81, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.4/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view
    return view_func(*args, **kwargs)
  File "/taiga/taiga/base/api/views.py", line 420, in dispatch
    response = self.handle_exception(exc)
  File "/taiga/taiga/base/api/views.py", line 417, in dispatch
    response = handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.4/site-packages/django/db/transaction.py", line 394, in inner
    return func(*args, **kwargs)
  File "/taiga/taiga/projects/userstories/api.py", line 172, in create
    response = super().create(*args, **kwargs)
  File "/taiga/taiga/base/api/mixins.py", line 72, in create
    self.object = serializer.save(force_insert=True)
  File "/taiga/taiga/base/api/serializers.py", line 1055, in save
    self.object = super().save(**kwargs)
  File "/taiga/taiga/base/api/serializers.py", line 614, in save
    self.save_object(self.object, **kwargs)
  File "/taiga/taiga/base/api/serializers.py", line 1073, in save_object
    obj.save(**kwargs)
  File "/taiga/taiga/projects/userstories/models.py", line 118, in save
    super().save(*args, **kwargs)
  File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 589, in save
    force_update=force_update, update_fields=update_fields)
  File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 626, in save_base
    update_fields=update_fields, raw=raw, using=using)
  File "/usr/local/lib/python3.4/site-packages/django/dispatch/dispatcher.py", line 198, in send
    response = receiver(signal=self, sender=sender, **named)
  File "/taiga/taiga/projects/references/models.py", line 92, in attach_sequence
    instance.save(update_fields=['ref'])
  File "/taiga/taiga/projects/userstories/models.py", line 118, in save
    super().save(*args, **kwargs)
  File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 589, in save
    force_update=force_update, update_fields=update_fields)
  File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 626, in save_base
    update_fields=update_fields, raw=raw, using=using)
  File "/usr/local/lib/python3.4/site-packages/django/dispatch/dispatcher.py", line 198, in send
    response = receiver(signal=self, sender=sender, **named)
  File "/taiga/taiga/events/signal_handlers.py", line 43, in on_save_any_model
    connection.on_commit(emit_event)
  File "/usr/local/lib/python3.4/site-packages/django/db/__init__.py", line 40, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
AttributeError: 'DatabaseWrapper' object has no attribute 'on_commit'
{
  "log": {
    "version": "1.2",
    "creator": {
      "name": "WebInspector",
      "version": "537.36"
    },
    "pages": [],
    "entries": [
      {
        "startedDateTime": "2015-09-18T11:11:06.820Z",
        "time": 2606.94599999988,
        "request": {
          "method": "POST",
          "url": "http://runt.local:8000/api/v1/userstories",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Authorization",
              "value": "Bearer eyJ1c2VyX2F1dGhlbnRpY2F0aW9uX2lkIjo0fQ:1ZcgpI:WnZpOMloCH7Iw90Th34jAsBJCc4"
            },
            {
              "name": "Origin",
              "value": "http://runt.local"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate"
            },
            {
              "name": "Host",
              "value": "runt.local:8000"
            },
            {
              "name": "Accept-Language",
              "value": "en"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Accept",
              "value": "application/json, text/plain, */*"
            },
            {
              "name": "X-Session-Id",
              "value": "d351fe19875fb543214102b800300e1f3b73106a"
            },
            {
              "name": "Referer",
              "value": "http://runt.local/project/admin-ipip-neo/kanban"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Content-Length",
              "value": "338"
            },
            {
              "name": "DNT",
              "value": "1"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 613,
          "bodySize": 338,
          "postData": {
            "mimeType": "application/json",
            "text": "{\"_attrs\":{\"project\":1,\"points\":{},\"status\":1,\"is_archived\":false,\"tags\":[]},\"_name\":\"userstories\",\"_dataTypes\":{},\"_modifiedAttrs\":{\"points\":{\"1\":2,\"2\":2,\"3\":5,\"4\":2}},\"_isModified\":true,\"project\":1,\"points\":{\"1\":2,\"2\":2,\"3\":5,\"4\":2},\"status\":1,\"is_archived\":false,\"tags\":[],\"subject\":\"asdf\",\"description\":\"asdf\",\"team_requirement\":true}"
          }
        },
        "response": {
          "status": 500,
          "statusText": "INTERNAL SERVER ERROR",
          "httpVersion": "HTTP/1.0",
          "headers": [
            {
              "name": "Date",
              "value": "Fri, 18 Sep 2015 11:11:08 GMT"
            },
            {
              "name": "Vary",
              "value": "Cookie, Accept-Language"
            },
            {
              "name": "Server",
              "value": "WSGIServer/0.2 CPython/3.4.3"
            },
            {
              "name": "Content-Language",
              "value": "en"
            },
            {
              "name": "Access-Control-Max-Age",
              "value": "3600"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST,GET,OPTIONS,PUT,DELETE,PATCH,HEAD"
            },
            {
              "name": "Content-Type",
              "value": "text/html; charset=utf-8"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*"
            },
            {
              "name": "Access-Control-Expose-Headers",
              "value": "x-pagination-count,x-paginated,x-paginated-by,x-pagination-current,x-pagination-next,x-pagination-prev,x-site-host,x-site-register"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "content-type,x-requested-with,authorization,accept-encoding,x-disable-pagination,x-host,x-session-id"
            }
          ],
          "cookies": [],
          "content": {
            "size": 37,
            "mimeType": "text/html",
            "compression": 0
          },
          "redirectURL": "",
          "headersSize": 673,
          "bodySize": 37,
          "_transferSize": 710
        },
        "cache": {},
        "timings": {
          "blocked": 4.1180000116583,
          "dns": 860.9729999880077,
          "connect": 980.4920000024141,
          "send": 0.16000001050997525,
          "wait": 759.29199998791,
          "receive": 1.9109999993797828,
          "ssl": -1
        },
        "connection": "267976"
      }
    ]
  }
}

Last update 2 years ago? There is alternative, working production-ready container

Hi, I see this project looks dead. I created a working production-ready container that is always up-to-date - all new Taiga releases are automatically built on CI (scheduled on cron) and Tagged in docker registry.

Features:

  • Production-ready setup (using gunicorn instead of python's built-in development server)
  • Stable versioning (tagged Taiga releases + dated snapshots. Dated snapshots are immutable, as main tags can be updated in case of a hotfix)
  • Automatic building of each new Taiga release on Travis CI (using for-each-github-release toolkit from RiotKit CI Utils)
  • Automatic documentation in README.md generated from parsed ENV variables and comments placed in Dockerfile

Please take a look at:
https://github.com/riotkit-org/docker-taiga

docker-compose issue

did a >docker-compose up

File "/bin/docker-compose", line 5, in
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 3011, in
parse_requirements(requires), Environment()
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 626, in resolve
raise DistributionNotFound(req)

Something wrong when I run the taiga-front code

Firstly, I run the code
"docker run -d -p 80:80 --taiga-front --link taiga-back:taiga-back --volumes-from taiga-back ipedrazas/taiga-front"
Then I load the "ip:80/api/v1",but it show the backend,
So I remove the container And I run the code
โ€œdocker run -d -p 80:80 --link taiga-back:taiga-back -v "$(pwd)"/frontend/conf.json:/taiga/js/conf.json:ro ipedrazas/taiga-frontโ€,
then I find the error :
Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:359: container init caused "rootfs_linux.go: 54: mounting \"/home/docker/frontend/conf.json\" to rootfs \"/mnt/sda1/var/lib/docker/aufs/mnt/7bab562f3927b76dcbbd4cc26452b31e8d6eec9f17a59bdbf133e3c632adf7f1\\ " at \"/mnt/sda1/var/lib/docker/aufs/mnt/7bab562f3927b76dcbbd4cc26452b31e8d6eec9f17a59bdbf133e3c632adf7f1/taiga/js/conf.json\" caused \"not a directory\"""
: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
Error: failed to start containers: ea99f4fc1b4d

How can I fix it?

Bad Oompa Loompas.

Installed docker on an ubuntu machine at digital ocean. Cloned this repo. Ran setup.sh. Ran run-taiga.sh. Connect to ipaddress:80. See login form. Login form redirects to /error after a second and shows "Something happened and our Oompa Loompas are working on it. Try reloading again soon." How do I fix?

Django backend - missing static files

Hello.

I successfully install everythings but the css/img/... of the Django interface (admin) is missing because of the wrong URL.

image

I used a public domain name for the install and i think this is why.

In docker-settings.py of taiga-back : (lines 193-200)

# The absolute url is mandatory because attachments
# urls depends on it. On production should be set
# something like https://media.taiga.io/
MEDIA_URL = "http://localhost:8000/media/"

# Static url is not widelly used by taiga (only
# if admin is activated).
STATIC_URL = "http://localhost:8000/static/"

I don't know how to change it because i just begin to use docker. Is there a way of doing it manually ?

Or maybe the following command can handle this.

export API_NAME=boot2docker"

sorry for my english.

and thanks for your great job ! ๐Ÿ‘

Building custom domain taiga

after running the following

docker run -it --rm --link postgres:postgres taiga/taiga-back bash regenerate.sh

I get the message below. Any idea what would be causing this?

Unable to find image 'taiga/taiga-back' locally
Pulling repository taiga/taiga-back
2014/11/17 08:53:04 Error: image taiga/taiga-back not found

docker-compose instructions?

Hi! I make steps:

git clone https://github.com/ipedrazas/taiga-docker

cd .\taiga-docker\

docker-compose up -d

docker-compose exec taigaback bash regenerate.sh

Press Y to continue

Open http://192.168.99.100:8080

Go to http://192.168.99.100:8080/login

But what is the login and password?

Default admin / 123123 dont fit.

Restore password for admin user return error:

Oops, something happened...
According to our Oompa Loompas, your are not registered yet.

What to do next? How to log in?

Login failure

First Thank you for your work to make Taiga dockerized.

I followed the instructions and then went to the http:/// and used admin/123123 as username password and I get a bad username/password error.

I then attempted to reset password for "admin", and it says that user is not registered.

I looked in the database and users_user table has the user admin with id = 4 and active=true.
But I don't see any rows inside the users_authdata and users_role tables.

I'm not sure if the database setup is incomplete for the user to login or what else is wrong.

Are you able to login to your test runs?

Create User disabled

I installed Taiga through setup.sh, exported API_NAME=192.168.1.200.
I can log in using the admin account, but cannot register any user account. I didn't see any admin pages for user administration either.

Here is the output of http://192.168.1.200:8000/api/v1/invitations
`GET /api/v1/invitations
HTTP 403 FORBIDDEN
Vary: Accept
Allow: GET, HEAD, OPTIONS
Content-Type: application/json

{
"_error_type": "taiga.base.exceptions.PermissionDenied",
"_error_message": "You don't have permisions to see that."
}`

No team members showing up in team tab or task assignment

I was successfully installed and get everything working including mail. However, when created a project and added members to project after email invitation (members already signed up and can login), I can't see any of them in the team tab. Same thing happens when I created a task and tried to assign to a member, the search screen gives empty result.

What could be wrong? Everything else seems working totally fine and I can't find errors via "docker logs taiga-back".

Call to Taiga git repo seem to be updated!

Hi.. when i run docker run -it --rm --link postgres:postgres taiga/taiga-back bash regenerate.sh i get Pulling repository taiga/taiga-back
2015/01/06 02:17:40 HTTP code: 404

5 accounts max ?

Hello,
I have setup a taiga on my machine and it's work great but when I want to add some account with the admin panel I have a problem ... When the number of account (with gitlab/github ... default account) is bigger than 5, I have a error "Server Error (500)" why and how to fix this please ?

media files

Hi a last questions hopefully ...
Now the front can discuss with the back. Files are written in taiga-back correctly but my browser can not access the media file with URL: http://DNS_back/media/user ...
Shall I edit anything for this query to point to media folder in taiga-back?
Sorry I am not that knowledgeable here ...

FATAL: role "taiga" does not exist

bash-3.2$ docker-compose up
Starting taigadockermaster_postgres_1...
Starting taigadockermaster_taigaback_1...
Starting taigadockermaster_taigafront_1...
Attaching to taigadockermaster_postgres_1, taigadockermaster_taigaback_1, taigadockermaster_taigafront_1
postgres_1   | The files belonging to this database system will be owned by user "postgres".
postgres_1   | This user must also own the server process.
postgres_1   | 
taigaback_1  | Trying import local.py settings...
taigaback_1  | WARNING: Using backend without django-transaction-hooks support, auto delete files will not work.
taigaback_1  | Trying import local.py settings...
taigaback_1  | WARNING: Using backend without django-transaction-hooks support, auto delete files will not work.
postgres_1   | The database cluster will be initialized with locale "en_US.utf8".
postgres_1   | The default database encoding has accordingly been set to "UTF8".
postgres_1   | The default text search configuration will be set to "english".
postgres_1   | 
postgres_1   | Data page checksums are disabled.
postgres_1   | 
postgres_1   | fixing permissions on existing directory /var/lib/postgresql/data ... ok
postgres_1   | creating subdirectories ... ok
postgres_1   | selecting default max_connections ... 100
postgres_1   | selecting default shared_buffers ... 128MB
postgres_1   | selecting dynamic shared memory implementation ... posix
postgres_1   | creating configuration files ... ok
postgres_1   | creating template1 database in /var/lib/postgresql/data/base/1 ... ok
postgres_1   | initializing pg_authid ... ok
postgres_1   | initializing dependencies ... ok
postgres_1   | creating system views ... ok
postgres_1   | loading system objects' descriptions ... ok
postgres_1   | creating collations ... ok
postgres_1   | creating conversions ... ok
postgres_1   | creating dictionaries ... ok
postgres_1   | setting privileges on built-in objects ... ok
postgres_1   | creating information schema ... ok
postgres_1   | loading PL/pgSQL server-side language ... ok
postgres_1   | vacuuming database template1 ... ok
postgres_1   | copying template1 to template0 ... ok
postgres_1   | copying template1 to postgres ... ok
postgres_1   | syncing data to disk ... ok
postgres_1   | 
postgres_1   | WARNING: enabling "trust" authentication for local connections
postgres_1   | You can change this by editing pg_hba.conf or using the option -A, or
postgres_1   | --auth-local and --auth-host, the next time you run initdb.
postgres_1   | 
postgres_1   | Success. You can now start the database server using:
postgres_1   | 
postgres_1   |     pg_ctl -D /var/lib/postgresql/data -l logfile start
postgres_1   | 
postgres_1   | ****************************************************
postgres_1   | WARNING: No password has been set for the database.
postgres_1   |          This will allow anyone with access to the
postgres_1   |          Postgres port to access your database. In
postgres_1   |          Docker's default configuration, this is
postgres_1   |          effectively any other container on the same
postgres_1   |          system.
postgres_1   | 
postgres_1   |          Use "-e POSTGRES_PASSWORD=password" to set
postgres_1   |          it in "docker run".
postgres_1   | ****************************************************
postgres_1   | waiting for server to start....LOG:  database system was shut down at 2016-01-17 09:54:07 UTC
postgres_1   | LOG:  MultiXact member wraparound protections are now enabled
postgres_1   | LOG:  database system is ready to accept connections
postgres_1   | LOG:  autovacuum launcher started
postgres_1   |  done
postgres_1   | server started
postgres_1   | ALTER ROLE
postgres_1   | 
postgres_1   | 
postgres_1   | /docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
postgres_1   | 
postgres_1   | LOG:  received fast shutdown request
postgres_1   | LOG:  aborting any active transactions
postgres_1   | LOG:  autovacuum launcher shutting down
postgres_1   | LOG:  shutting down
postgres_1   | waiting for server to shut down....LOG:  database system is shut down
postgres_1   |  done
postgres_1   | server stopped
postgres_1   | 
postgres_1   | PostgreSQL init process complete; ready for start up.
postgres_1   | 
postgres_1   | LOG:  database system was shut down at 2016-01-17 09:54:08 UTC
postgres_1   | LOG:  MultiXact member wraparound protections are now enabled
postgres_1   | LOG:  database system is ready to accept connections
postgres_1   | LOG:  autovacuum launcher started
postgres_1   | FATAL:  role "taiga" does not exist
postgres_1   | LOG:  received smart shutdown request
postgres_1   | LOG:  autovacuum launcher shutting down
postgres_1   | LOG:  shutting down
postgres_1   | LOG:  database system is shut down
postgres_1   | LOG:  database system was shut down at 2016-01-17 10:14:43 UTC
postgres_1   | LOG:  MultiXact member wraparound protections are now enabled
postgres_1   | LOG:  database system is ready to accept connections
postgres_1   | LOG:  autovacuum launcher started
taigaback_1  | Trying import local.py settings...
taigaback_1  | WARNING: Using backend without django-transaction-hooks support, auto delete files will not work.
taigaback_1  | Trying import local.py settings...
taigaback_1  | WARNING: Using backend without django-transaction-hooks support, auto delete files will not work.
postgres_1   | FATAL:  role "taiga" does not exist

OS: OSX El Capitan
Softwares: Docker Kitematic 0.8.7, Docker Engine 1.8.3, Docker Machine 0.4.1

Will send a PR if I'm able to fix it.

Project abandoned?

I'm coming from spending few days struggling through another docker taiga project where the author has completely jumped ship and left hundreds of people to struggle on their own to figure things out.

In order to prevent doing the same mistake, one question to the author.

Is this project abandoned? Do you plan to support your users? Fix bugs? Implement new features? Improvements? What level of commitment is there?

Thanks!

e-mail Configuration

Hi
please anyone help me to configure email with this image.
When i m trying to add new user, it is not sending any request to newly created user.

The media url 404

How can I make the right conf of the media? When I access the media,the nginx shows 404. But the static url is right!

This is the part of local.py

#MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_ROOT = '/home/taiga/media'
#STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATIC_ROOT = '/home/taiga/static'

And the default.conf

# Static files
location /static {
    alias /taiga/static;
}

# Media files
location /media {
    alias /taiga/media;
}

How can I fix the error?
Regards.

Taiga `setup.sh` Failure

Hi. I wanted to give this project a spin, and it doesn't appear to be working.
I've given the docker-compose a shot, but wasn't able to login. Even after trying the suggestions mentioned in issue #37, still ended up getting a 405. In response to that, I purged and started over with the setup.sh but I still can't login and didn't get any response code that would indicate trouble.

I think setup.sh and docker-compose.yml need some serious TLC. If this project is no longer maintained, I will try doing this in a different repository.

API_NAME: localhost
e5cf2f31f20d8d101197794a70dde8471b0f5ce96448039a93265cac5f8f3ede
49f2fe81b77a22bb4f874486db5973e028940fce1c300d1b06ec68b1cc2d5d75
272a17c7212091ce47fe2419e43c66ee53a4624a09994dada49b26adf6fd7468
createuser: creation of new role failed: ERROR:  role "taiga" already exists
createdb: database creation failed: ERROR:  database "taiga" already exists
-> Remove taiga DB
regenerate.sh: line 5: dropdb: command not found
-> Create taiga DB
regenerate.sh: line 7: createdb: command not found
-> Run syncdb
Trying import local.py settings...
WARNING: Using backend without django-transaction-hooks support, auto delete files will not work.
Operations to perform:
  Synchronize unmigrated apps: searches, export_import, sitemaps, front, sr, raven_compat, django_jinja, django_transactional_cleanup, _humanize
  Apply all migrations: timeline, bitbucket, feedback, milestones, notifications, github, attachments, history, tasks, gitlab, custom_attributes, votes, easy_thumbnails, auth, projects, sessions, references, admin, wiki, contenttypes, users, userstories, webhooks, issues, userstorage, djmail
Synchronizing apps without migrations:
  Creating tables...
  Installing custom SQL...
  Installing indexes...
Running migrations:
  No migrations to apply.
  Your models have changes that are not yet reflected in a migration, and so won't be applied.
  Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
-> Load initial user
Trying import local.py settings...
WARNING: Using backend without django-transaction-hooks support, auto delete files will not work.
Installed 1 object(s) from 1 fixture(s)
-> Load initial project_templates
Trying import local.py settings...
WARNING: Using backend without django-transaction-hooks support, auto delete files will not work.
Installed 2 object(s) from 1 fixture(s)
-> Load initial roles
Trying import local.py settings...
WARNING: Using backend without django-transaction-hooks support, auto delete files will not work.
Installed 0 object(s) from 0 fixture(s)
-> Generate sample data
-> Rebuilding timeline
Trying import local.py settings...
WARNING: Using backend without django-transaction-hooks support, auto delete files will not work.
โžœ  taiga-docker git:(master) โœ— docker -v
Docker version 17.12.0-ce, build c97c6d6

Server application error

I Got a server application error when i submit a new ticket

MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Subject: [Django] ERROR (EXTERNAL IP): Internal Server Error:
/api/v1/userstories
From: root@localhost
[04/Dec/2016 12:42:13] "POST /api/v1/userstories HTTP/1.1" 500 37
To: [email protected]
Date: Sun, 04 Dec 2016 12:42:19 -0000
Message-ID: 20161204124219.10.6459@78490dd9209b

Internal Server Error: /api/v1/userstories
Traceback (most recent call last):
File "/usr/local/lib/python3.4/site-packages/django/core/handlers/base.py", line 111, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/taiga/taiga/base/api/viewsets.py", line 81, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.4/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view
return view_func(*args, **kwargs)
File "/taiga/taiga/base/api/views.py", line 420, in dispatch
response = self.handle_exception(exc)
File "/taiga/taiga/base/api/views.py", line 417, in dispatch
response = handler(request, *args, **kwargs)
File "/usr/local/lib/python3.4/site-packages/django/db/transaction.py", line 394, in inner
return func(*args, **kwargs)
File "/taiga/taiga/projects/userstories/api.py", line 172, in create
response = super().create(*args, **kwargs)
File "/taiga/taiga/base/api/mixins.py", line 72, in create
self.object = serializer.save(force_insert=True)
File "/taiga/taiga/base/api/serializers.py", line 1055, in save
self.object = super().save(**kwargs)
File "/taiga/taiga/base/api/serializers.py", line 614, in save
self.save_object(self.object, **kwargs)
File "/taiga/taiga/base/api/serializers.py", line 1073, in save_object
obj.save(**kwargs)
File "/taiga/taiga/projects/userstories/models.py", line 118, in save
super().save(*args, **kwargs)
File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 589, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 626, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/usr/local/lib/python3.4/site-packages/django/dispatch/dispatcher.py", line 198, in send
response = receiver(signal=self, sender=sender, **named)
File "/taiga/taiga/projects/references/models.py", line 92, in attach_sequence
instance.save(update_fields=['ref'])
File "/taiga/taiga/projects/userstories/models.py", line 118, in save
super().save(*args, **kwargs)
File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 589, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 626, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/usr/local/lib/python3.4/site-packages/django/dispatch/dispatcher.py", line 198, in send
response = receiver(signal=self, sender=sender, **named)
File "/taiga/taiga/events/signal_handlers.py", line 43, in on_save_any_model
connection.on_commit(emit_event)
File "/usr/local/lib/python3.4/site-packages/django/db/init.py", line 40, in getattr
return getattr(connections[DEFAULT_DB_ALIAS], item)
AttributeError: 'DatabaseWrapper' object has no attribute 'on_commit'

Request repr():
<WSGIRequest
path:/api/v1/userstories,
GET:<QueryDict: {}>,
POST:,
COOKIES:{},
META:{'API_NAME': 'example.com',
'CONTENT_LENGTH': '237',
'CONTENT_TYPE': 'application/json',
'DEBIAN_FRONTEND': 'noninteractive',
'DJANGO_SETTINGS_MODULE': 'settings',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HOME': '/root',
'HOSTNAME': '78490dd9209b',
[04/Dec/2016 12:42:18] "OPTIONS /api/v1/userstories HTTP/1.1" 200 0
ERROR:2016-12-04 12:42:19,151: Internal Server Error: /api/v1/userstories
Traceback (most recent call last):
File "/usr/local/lib/python3.4/site-packages/django/core/handlers/base.py", line 111, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/taiga/taiga/base/api/viewsets.py", line 81, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.4/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view
return view_func(*args, **kwargs)
File "/taiga/taiga/base/api/views.py", line 420, in dispatch
response = self.handle_exception(exc)
File "/taiga/taiga/base/api/views.py", line 417, in dispatch
response = handler(request, *args, **kwargs)
File "/usr/local/lib/python3.4/site-packages/django/db/transaction.py", line 394, in inner
return func(*args, **kwargs)
File "/taiga/taiga/projects/userstories/api.py", line 172, in create
response = super().create(*args, **kwargs)
File "/taiga/taiga/base/api/mixins.py", line 72, in create
self.object = serializer.save(force_insert=True)
File "/taiga/taiga/base/api/serializers.py", line 1055, in save
self.object = super().save(**kwargs)
File "/taiga/taiga/base/api/serializers.py", line 614, in save
self.save_object(self.object, **kwargs)
File "/taiga/taiga/base/api/serializers.py", line 1073, in save_object
obj.save(**kwargs)
File "/taiga/taiga/projects/userstories/models.py", line 118, in save
super().save(*args, **kwargs)
File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 589, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 626, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/usr/local/lib/python3.4/site-packages/django/dispatch/dispatcher.py", line 198, in send
response = receiver(signal=self, sender=sender, **named)
File "/taiga/taiga/projects/references/models.py", line 92, in attach_sequence
instance.save(update_fields=['ref'])
File "/taiga/taiga/projects/userstories/models.py", line 118, in save
super().save(*args, **kwargs)
File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 589, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python3.4/site-packages/django/db/models/base.py", line 626, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/usr/local/lib/python3.4/site-packages/django/dispatch/dispatcher.py", line 198, in send
response = receiver(signal=self, sender=sender, **named)
File "/taiga/taiga/events/signal_handlers.py", line 43, in on_save_any_model
connection.on_commit(emit_event)
File "/usr/local/lib/python3.4/site-packages/django/db/init.py", line 40, in getattr
return getattr(connections[DEFAULT_DB_ALIAS], item)
AttributeError: 'DatabaseWrapper' object has no attribute 'on_commit'
'HTTP_ACCEPT': 'application/json, text/plain, /',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_ACCEPT_LANGUAGE': 'fr',
'HTTP_AUTHORIZATION': 'Bearer '
'eyJ1c2VyX2F1dGhlbnRpY2F0aW9uX2lkIjo0fQ:1cDW5e:-RiI2DOGxEqh8MRH1TewHj0ytis',
'HTTP_CACHE_CONTROL': 'no-cache',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_HOST': 'example.com:8000',
'HTTP_ORIGIN': 'http://example.com',
'HTTP_PRAGMA': 'no-cache',
'HTTP_REFERER': 'http://example.com/project/project/kanban',
'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 '
'(KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36',
'HTTP_X_SESSION_ID': '2e873bd8c4cfe0a51ceb05a763aff02a7afac05c',
'LANG': 'en_US.UTF-8',
'LC_TYPE': 'en_US.UTF-8',
'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
'PATH_INFO': '/api/v1/userstories',
'POSTGRES_ENV_GOSU_VERSION': '1.7',
'POSTGRES_ENV_LANG': 'en_US.utf8',
'POSTGRES_ENV_PGDATA': '/var/lib/postgresql/data',
'POSTGRES_ENV_PG_MAJOR': '9.6',
'POSTGRES_ENV_PG_VERSION': '9.6.1-1.pgdg80+1',
'POSTGRES_NAME': '/taiga-back/postgres',
'POSTGRES_PORT': 'tcp://172.17.0.2:5432',
'POSTGRES_PORT_5432_TCP': 'tcp://172.17.0.2:5432',
'POSTGRES_PORT_5432_TCP_ADDR': '172.17.0.2',
'POSTGRES_PORT_5432_TCP_PORT': '5432',
'POSTGRES_PORT_5432_TCP_PROTO': 'tcp',
'PYTHON_PIP_VERSION': '7.1.0',
'PYTHON_VERSION': '3.4.3',
'QUERY_STRING': '',
'REMOTE_ADDR': '86.219.230.124',
'REMOTE_HOST': '',
'REQUEST_METHOD': 'POST',
'RUN_MAIN': 'true',
'SCRIPT_NAME': '',
'SERVER_NAME': '78490dd9209b',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'WSGIServer/0.2',
'TZ': 'UTC',
'wsgi.errors': <_io.TextIOWrapper name='' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=7>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}>

Deployment on AWS

Hi, thanks for the great work. You say there is something special to be done if we want to deploy on AWS (cf. http://ivan.pedrazas.me/2014/10/08/local-taiga-with-docker/). Can you elaborate more? At the moment if I deploy the 3 containers using your setup.sh, there seems to be a problem with the API communication between front/back and therefore I can not login. Can you add such information on the readme?

Thanks a lot!

couldn't login with default credentials

Hello,
can someone help to fix script?

CLEANING

rm -rf /var/cache/taiga-postgres ; \
mkdir -p /var/cache/taiga-postgres && \
docker rm -f taiga-postgres taiga-front taiga-back

RUNNING

docker run -d --name taiga-postgres  -v /var/cache/taiga-postgres:/var/lib/postgresql/data postgres && \
sleep 15 && \
docker run -d --name taiga-back  -p 8000:8000 -e API_NAME=localhost  --link taiga-postgres:postgres ipedrazas/taiga-back && \
docker run -d --name taiga-front -p 89:80 -e API_NAME=localhost --link taiga-back:taiga-back --volumes-from taiga-back ipedrazas/taiga-front && \
docker run -it --link taiga-postgres:postgres --rm postgres \
  sh -c "su postgres --command 'createuser -h "'$POSTGRES_PORT_5432_TCP_ADDR'" -p "'$POSTGRES_PORT_5432_TCP_PORT'" -d -r -s taiga'" && \
docker run -it --link taiga-postgres:postgres --rm postgres \
  sh -c "su postgres --command 'createdb -h "'$POSTGRES_PORT_5432_TCP_ADDR'" -p "'$POSTGRES_PORT_5432_TCP_PORT'" -O taiga taiga'" && \
docker run -it --rm --link taiga-postgres:postgres ipedrazas/taiga-back bash regenerate.sh

Where I had mistake?

Images on Docker Hub are old

It looks like the images on Docker Hub are 2 years old. Could you please rebuild them so they contain the latest version of Taiga? Thanks!

Informations about taiga and docker

Hello,

I just finish to install taiga with docker. I am new user of docker. So I have questions:

  • taiga data are saving in /data/postgres folder in host when I use taiga in docker guest (so the container). If I remove my postgres container, and I restart it, is there a risk to loose data? How can I save Postgres data?
  • Is their a possibility of using port 80 with nginx and taiga? Because if I let nginx started, a message prompt to me and say it's not possible to use this port when I launch it...How can I use Nginx with taiga?
  • The email are not sending and is visible when I do "docker taiga-back logs" and we show them. Is their a way to install Postfix or use it in another container in dependencie with taiga-back ?

I use this issue but nothing change. I also install postfix on the container, and I can send mail...but nothing to do, email keep in "docker logs taiga-back". IN LOGS I HAVE THIS:

[15/Nov/2015 18:14:53] "POST /api/v1/memberships/4/resend_invitation HTTP/1.1" 204 0
WARNING Property: Unknown Property name. [6:51: -webkit-text-size-adjust]
WARNING Property: Unknown Property name. [6:82: -ms-text-size-adjust]
WARNING Property: Unknown Property name. [7:23: mso-table-lspace]
WARNING Property: Unknown Property name. [7:45: mso-table-rspace]
WARNING Property: Unknown Property name. [8:17: -ms-interpolation-mode]
ERROR   Property: Invalid value for "CSS Level 2.1" property: 0.8rem 3rem [173:17: padding]
WARNING Property: Unknown Property name. [240:55: -webkit-text-size-adjust]
WARNING Property: Unknown Property name.
Content-Type: multipart/alternative;
 boundary="===============1926444745020355257=="
MIME-Version: 1.0
Subject: [Taiga] Invitation to join to the project 'recette-etudiant'
From: [email protected]
To: [email protected]
Date: Sun, 15 Nov 2015 18:14:56 -0000
Message-ID: <20151115181456.9.82102@e591a67a5362>
  • The invitations are on the 9001 port, I change it to 80 but why 9001 ?

Many thanks ;)

Volumes sync

Hi, another question, what would be the directory we need to sync between the containers and the host so we have all data saved even though a container would crash, etc.
Cheers!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.