โ ๏ธ Our self-hosted repo has been archived!
We've moved our docker-compose over to our monorepo.
Create an entire Flagsmith environment locally
Home Page: https://www.flagsmith.com/
โ ๏ธ Our self-hosted repo has been archived!
We've moved our docker-compose over to our monorepo.
Hi,
Seems that adding additional environment variables to the frontend
service in the compose file has has no effect. I've tried adding FLAGSMITH
, FLAGSMITH_CLIENT_API
and PREVENT_SIGNUP
, to name some, and neither of them seem to be working.
My compose file is as follows:
version: "3"
services:
...
frontend:
container_name: flagsmith_frontend
image: flagsmith/flagsmith-frontend:latest
depends_on:
- api
networks:
- flagsmith
ports:
- "8080:8080"
environment:
API_URL: https://flagsmith-api.example.com/api/v1/
ASSET_URL: https://flagsmith.example.com/
ENV: prod
FLAGSMITH: abcdef
FLAGSMITH_CLIENT_API: https://flagsmith-api.example.com/api/v1/ # Flagsmith still connects to https://api.flagsmith.com/api/v1/
PREVENT_SIGNUP: 1 # Signing up is still possible; tried setting the variable to "true" as well, still with no effect
volumes:
- frontend-data:/srv/bt
restart: always
networks:
flagsmith:
volumes:
frontend-data: {}
Best regards,
Antun
https://flagsmith.github.io/flagsmith-charts/ helm deployment deployed, but segments aren't working.
react-dom.production.min.js:187 TypeError: Cannot read properties of null (reading 'find')
at Object.findOperator (utils.tsx:111:23)
Hi,
When I run Flagsmith with the default configuration 8000 everything is fine, but I would like to change that, so if I put say 8030 then the web dashboard is inaccessible and returns an empty response.
I think maybe PORT when put as an environment variable in Docker compose, it is not propagated to the front end part of Flagsmith.
on Firefox:
The connection was reset
on Chrome:
ERR_EMPTY_RESPONSE
This is part of my docker compose:
flagsmith:
image: flagsmith/flagsmith:latest
environment:
DJANGO_ALLOWED_HOSTS: "*" # Change this in production
DATABASE_URL: postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@myapp-postgres:5432/flagsmith
DISABLE_INFLUXDB_FEATURES: "true" # set to 'false' to enable InfluxDB
ENV: prod # set to "prod" in production.
ports:
- "9000:9000"
depends_on:
- myapp-postgres
# - influxdb
links:
- myapp-postgres
Thanks a lot :)
Hi I just successfully started the self-hosted version, everything runs good but have couple questions
Thank you so much!
Hello!
I'm a developer on a team that has adopted bullet train to manage our feature flags. We currently run bullet train via docker. The question I had was how do you think we should share the flags between developers locally while multiple devs are adding and removing flags.
It just feels a little weird for devs to have to log in to bullet train locally and create an environment every time they set up / reset their DB or fetch changes from colleagues, so I don't think running the containers locally will work.
One idea I am thinking about is running bullet train in our kubernetes cluster instead of (locally running docker containers) and managing them from there for all of our devs but then we would need an internet connection to develop.
If you have any ideas or use a specific strategy to solve this problem I'd love to hear it.
I think the task processor image freaks out for a while until the main flagsmith image has run all the DB migrations:
flagsmith_postgres | 2023-06-14 14:24:57.705 UTC [29] ERROR: function get_tasks_to_process(integer) does not exist at character 15
flagsmith_postgres | 2023-06-14 14:24:57.705 UTC [29] HINT: No function matches the given name and argument types. You might need to add explicit type casts.
flagsmith_postgres | 2023-06-14 14:24:57.705 UTC [29] STATEMENT: SELECT * FROM get_tasks_to_process(10)
flagsmith_postgres | 2023-06-14 14:24:57.705 UTC [33] ERROR: function get_tasks_to_process(integer) does not exist at character 15
flagsmith_postgres | 2023-06-14 14:24:57.705 UTC [33] HINT: No function matches the given name and argument types. You might need to add explicit type casts.
flagsmith_postgres | 2023-06-14 14:24:57.705 UTC [33] STATEMENT: SELECT * FROM get_tasks_to_process(10)
flagsmith_postgres | 2023-06-14 14:24:57.707 UTC [31] ERROR: function get_tasks_to_process(integer) does not exist at character 15
flagsmith_postgres | 2023-06-14 14:24:57.707 UTC [31] HINT: No function matches the given name and argument types. You might need to add explicit type casts.
flagsmith_postgres | 2023-06-14 14:24:57.707 UTC [31] STATEMENT: SELECT * FROM get_tasks_to_process(10)
flagsmith_postgres | 2023-06-14 14:24:57.708 UTC [32] ERROR: function get_tasks_to_process(integer) does not exist at character 15
flagsmith_postgres | 2023-06-14 14:24:57.708 UTC [32] HINT: No function matches the given name and argument types. You might need to add explicit type casts.
flagsmith_postgres | 2023-06-14 14:24:57.708 UTC [32] STATEMENT: SELECT * FROM get_tasks_to_process(10)
flagsmith_postgres | 2023-06-14 14:24:57.708 UTC [30] ERROR: function get_tasks_to_process(integer) does not exist at character 15
flagsmith_postgres | 2023-06-14 14:24:57.708 UTC [30] HINT: No function matches the given name and argument types. You might need to add explicit type casts.
flagsmith_postgres | 2023-06-14 14:24:57.708 UTC [30] STATEMENT: SELECT * FROM get_tasks_to_process(10)
self-hosted-flagsmith_processor-1 | task_processor.threads ERROR function get_tasks_to_process(integer) does not exist
self-hosted-flagsmith_processor-1 | LINE 1: SELECT * FROM get_tasks_to_process(10)
self-hosted-flagsmith_processor-1 | ^
self-hosted-flagsmith_processor-1 | HINT: No function matches the given name and argument types. You might need to add explicit type casts.
self-hosted-flagsmith_processor-1 | Traceback (most recent call last):
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute
self-hosted-flagsmith_processor-1 | return self.cursor.execute(sql, params)
self-hosted-flagsmith_processor-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self-hosted-flagsmith_processor-1 | psycopg2.errors.UndefinedFunction: function get_tasks_to_process(integer) does not exist
self-hosted-flagsmith_processor-1 | LINE 1: SELECT * FROM get_tasks_to_process(10)
self-hosted-flagsmith_processor-1 | ^
self-hosted-flagsmith_processor-1 | HINT: No function matches the given name and argument types. You might need to add explicit type casts.
self-hosted-flagsmith_processor-1 |
self-hosted-flagsmith_processor-1 |
self-hosted-flagsmith_processor-1 | The above exception was the direct cause of the following exception:
self-hosted-flagsmith_processor-1 |
self-hosted-flagsmith_processor-1 | Traceback (most recent call last):
self-hosted-flagsmith_processor-1 | File "/app/task_processor/threads.py", line 31, in run
self-hosted-flagsmith_processor-1 | run_tasks(self.queue_pop_size)
self-hosted-flagsmith_processor-1 | File "/app/task_processor/processor.py", line 24, in run_tasks
self-hosted-flagsmith_processor-1 | if tasks:
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1480, in __bool__
self-hosted-flagsmith_processor-1 | self._fetch_all()
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1471, in _fetch_all
self-hosted-flagsmith_processor-1 | self._result_cache = list(self.iterator())
self-hosted-flagsmith_processor-1 | ^^^^^^^^^^^^^^^^^^^^^
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1494, in iterator
self-hosted-flagsmith_processor-1 | query = iter(self.query)
self-hosted-flagsmith_processor-1 | ^^^^^^^^^^^^^^^^
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/models/sql/query.py", line 110, in __iter__
self-hosted-flagsmith_processor-1 | self._execute_query()
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/models/sql/query.py", line 150, in _execute_query
self-hosted-flagsmith_processor-1 | self.cursor.execute(self.sql, params)
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 66, in execute
self-hosted-flagsmith_processor-1 | return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
self-hosted-flagsmith_processor-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
self-hosted-flagsmith_processor-1 | return executor(sql, params, many, context)
self-hosted-flagsmith_processor-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 79, in _execute
self-hosted-flagsmith_processor-1 | with self.db.wrap_database_errors:
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/utils.py", line 90, in __exit__
self-hosted-flagsmith_processor-1 | raise dj_exc_value.with_traceback(traceback) from exc_value
self-hosted-flagsmith_processor-1 | File "/opt/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute
self-hosted-flagsmith_processor-1 | return self.cursor.execute(sql, params)
self-hosted-flagsmith_processor-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self-hosted-flagsmith_processor-1 | django.db.utils.ProgrammingError: function get_tasks_to_process(integer) does not exist
self-hosted-flagsmith_processor-1 | LINE 1: SELECT * FROM get_tasks_to_process(10)
self-hosted-flagsmith_processor-1 | ^
self-hosted-flagsmith_processor-1 | HINT: No function matches the given name and argument types. You might need to add explicit type casts.
self-hosted-flagsmith_processor-1 |
flagsmith_postgres | 2023-06-14 14:24:57.710 UTC [29] ERROR: function get_recurringtasks_to_process(integer) does not exist at character 15
flagsmith_postgres | 2023-06-14 14:24:57.710 UTC [29] HINT: No function matches the given name and argument types. You might need to add explicit type casts.
flagsmith_postgres | 2023-06-14 14:24:57.710 UTC [29] STATEMENT: SELECT * FROM get_recurringtasks_to_process(10)
self-hosted-flagsmith_processor-1 | Exception in thread Thread-1:
I then get warnings being spammed to the console:
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
self-hosted-flagsmith_processor-1 | task_processor.thread_monitoring WARNING Writing unhealthy threads: ['Thread-1', 'Thread-2', 'Thread-3', 'Thread-4', 'Thread-5']
running docker-compose down; docker-compose up
then brings everythign up cleanly
Hello!
I tried to give Bullet Train a try locally, ran the project with the instructions as indicated, but ran into an issue where the API container would crash. Here's a copy of the logs:
bullettrain_api | /app/src/app/settings/common.py:45: UserWarning: GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:48: UserWarning: GA_TABLE_ID not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GA_TABLE_ID not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:262: UserWarning: `SENDGRID_API_KEY` has not been configured. You will not receive emails.
bullettrain_api | warnings.warn(
bullettrain_api | Operations to perform:
bullettrain_api | Apply all migrations: admin, api, audit, auth, authtoken, contenttypes, db, environments, features, organisations, permissions, projects, segments, sessions, sites, trench, users
bullettrain_api | Running migrations:
bullettrain_api | Applying contenttypes.0001_initial... OK
bullettrain_api | Applying contenttypes.0002_remove_content_type_name... OK
bullettrain_api | Applying auth.0001_initial... OK
bullettrain_api | Applying auth.0002_alter_permission_name_max_length... OK
bullettrain_api | Applying auth.0003_alter_user_email_max_length... OK
bullettrain_api | Applying auth.0004_alter_user_username_opts... OK
bullettrain_api | Applying auth.0005_alter_user_last_login_null... OK
bullettrain_api | Applying auth.0006_require_contenttypes_0002... OK
bullettrain_api | Applying auth.0007_alter_validators_add_error_messages... OK
bullettrain_api | Applying auth.0008_alter_user_username_max_length... OK
bullettrain_api | Applying users.0001_initial... OK
bullettrain_api | Applying admin.0001_initial... OK
bullettrain_api | Applying admin.0002_logentry_remove_auto_add... OK
bullettrain_api | Applying admin.0003_logentry_add_action_flag_choices... OK
bullettrain_api | Applying organisations.0001_initial... OK
bullettrain_api | Applying projects.0001_initial... OK
bullettrain_api | Applying environments.0001_initial... OK
bullettrain_api | Applying api.0001_initial... OK
bullettrain_api | Applying api.0002_auto_20170619_1243... OK
bullettrain_api | Applying api.0003_auto_20170619_1255... OK
bullettrain_api | Applying api.0004_identity_uuid... OK
bullettrain_api | Applying api.0005_auto_20180514_1557... OK
bullettrain_api | Applying api.0006_auto_20180514_1622... OK
bullettrain_api | Applying api.0007_auto_20180517_1011... OK
bullettrain_api | Applying api.0008_auto_20180517_1104... OK
bullettrain_api | Applying api.0009_auto_20180517_1418... OK
bullettrain_api | Applying api.0010_remove_identity_hash... OK
bullettrain_api | Applying api.0011_auto_20180517_1646... OK
bullettrain_api | Applying api.0012_delete_ffadminuser... OK
bullettrain_api | Applying users.0002_ffadminuser_organisation... OK
bullettrain_api | Applying users.0003_auto_20180518_1045... OK
bullettrain_api | Applying users.0004_auto_20180518_1655... OK
bullettrain_api | Applying users.0005_auto_20180518_1659... OK
bullettrain_api | Applying users.0006_auto_20180522_0928... OK
bullettrain_api | Applying api.0013_featurestate_value... OK
bullettrain_api | Applying api.0014_auto_20180522_0928... OK
bullettrain_api | Applying api.0015_auto_20180522_0931... OK
bullettrain_api | Applying users.0007_invite... OK
bullettrain_api | Applying users.0008_auto_20180522_1302... OK
bullettrain_api | Applying users.0009_auto_20180522_1342... OK
bullettrain_api | Applying users.0010_auto_20180522_1350... OK
bullettrain_api | Applying users.0011_remove_ffadminuser_organisation... OK
bullettrain_api | Applying users.0012_invite_frontend_base_url... OK
bullettrain_api | Applying users.0013_auto_20180524_1521... OK
bullettrain_api | Applying api.0016_auto_20180522_1311... OK
bullettrain_api | Applying api.0017_feature_description... OK
bullettrain_api | Applying api.0018_auto_20180524_1521... OK
bullettrain_api | Applying api.0019_auto_20180525_1436... OK
bullettrain_api | Applying api.0020_auto_20180525_1541... OK
bullettrain_api | Applying api.0021_auto_20180525_1651... OK
bullettrain_api | Applying environments.0002_auto_20180809_0014... OK
bullettrain_api | Applying environments.0003_auto_20180925_0915... OK
bullettrain_api | Applying environments.0004_auto_20181026_1438... OK
bullettrain_api | Applying environments.0005_auto_20181128_1013... OK
bullettrain_api | Applying environments.0006_auditlog... OK
bullettrain_api | Applying environments.0007_auto_20190827_1528... OK
bullettrain_api | Applying audit.0001_initial... OK
bullettrain_api | Applying audit.0002_auto_20190909_1153... OK
bullettrain_api | Applying audit.0003_auto_20190910_1545... OK
bullettrain_api | Applying audit.0004_auto_20200504_1322... OK
bullettrain_api | Applying auth.0009_alter_user_last_name_max_length... OK
bullettrain_api | Applying auth.0010_alter_group_name_max_length... OK
bullettrain_api | Applying auth.0011_update_proxy_permissions... OK
bullettrain_api | Applying authtoken.0001_initial... OK
bullettrain_api | Applying authtoken.0002_auto_20160226_1747... OK
bullettrain_api | Applying db.0001_initial... OK
bullettrain_api | Applying permissions.0001_initial... OK
bullettrain_api | Applying permissions.0002_auto_20200221_2126... OK
bullettrain_api | Applying users.0014_invite_invited_by... OK
bullettrain_api | Applying users.0015_auto_20180809_0014... OK
bullettrain_api | Applying users.0016_auto_20180910_1341... OK
bullettrain_api | Applying users.0017_auto_20180913_1116... OK
bullettrain_api | Applying users.0018_auto_20180920_1234... OK
bullettrain_api | Applying users.0019_auto_20181025_1611... OK
bullettrain_api | Applying users.0020_auto_20181128_1012... OK
bullettrain_api | Applying organisations.0002_organisation_has_requested_features... OK
bullettrain_api | Applying organisations.0003_organisation_webhook_notification_email... OK
bullettrain_api | Applying organisations.0004_organisation_created_date... OK
bullettrain_api | Applying organisations.0005_auto_20181025_1611... OK
bullettrain_api | Applying organisations.0006_auto_20181030_1438... OK
bullettrain_api | Applying organisations.0007_organisation_pending_cancellation... OK
bullettrain_api | Applying organisations.0008_auto_20181108_1259... OK
bullettrain_api | Applying organisations.0009_auto_20181108_1306... OK
bullettrain_api | Applying organisations.0010_subscription... OK
bullettrain_api | Applying organisations.0011_subscription_max_seats... OK
bullettrain_api | Applying organisations.0012_auto_20190912_1538... OK
bullettrain_api | Applying organisations.0013_organisation_alerted_over_plan_limit... OK
bullettrain_api | Applying organisations.0014_userorganisation... OK
bullettrain_api | Applying users.0021_auto_20190918_1040... OK
bullettrain_api | Applying users.0022_invite_role... OK
bullettrain_api | Applying users.0023_auto_20191122_1039... OK
bullettrain_api | Applying users.0024_auto_20200216_1924... OK
bullettrain_api | Applying environments.0008_webhook... OK
bullettrain_api | Applying environments.0009_auto_20200219_1922... OK
bullettrain_api | Applying environments.0010_auto_20200219_2343... OK
bullettrain_api | Applying environments.0011_auto_20200220_0044... OK
bullettrain_api | Applying environments.0012_auto_20200504_1322... OK
bullettrain_api | Applying segments.0001_initial... OK
bullettrain_api | Applying segments.0002_auto_20190515_1113... OK
bullettrain_api | Applying segments.0003_segment_project... OK
bullettrain_api | Applying segments.0004_auto_20190523_1325... OK
bullettrain_api | Applying segments.0005_auto_20190529_1426... OK
bullettrain_api | Applying segments.0006_auto_20190828_0907... OK
bullettrain_api | Applying segments.0007_auto_20190906_1416... OK
bullettrain_api | Applying features.0001_initial... OK
bullettrain_api | Applying features.0002_auto_20180530_0724... OK
bullettrain_api | Applying features.0003_auto_20180601_1038... OK
bullettrain_api | Applying features.0004_auto_20180604_1259... OK
bullettrain_api | Applying features.0005_auto_20180604_1348... OK
bullettrain_api | Applying features.0006_featurestate_type... OK
bullettrain_api | Applying features.0007_feature_default_enabled... OK
bullettrain_api | Applying features.0008_auto_20180608_1328... OK
bullettrain_api | Applying features.0009_auto_20180815_1011... OK
bullettrain_api | Applying features.0009_auto_20180809_0014... OK
bullettrain_api | Applying features.0010_merge_20180816_1531... OK
bullettrain_api | Applying features.0011_historicalfeature_squashed_0012_historicalfeaturestate_historicalfeaturestatevalue... OK
bullettrain_api | Applying features.0012_auto_20190424_1555... OK
bullettrain_api | Applying features.0013_auto_20190607_1109... OK
bullettrain_api | Applying features.0014_auto_20190607_1642... OK
bullettrain_api | Applying features.0015_auto_20190916_1338... OK
bullettrain_api | Applying features.0016_auto_20190916_1717... OK
bullettrain_api | Applying features.0017_auto_20200607_1005... OK
bullettrain_api | Applying features.0018_auto_20200607_1057... OK
bullettrain_api | Applying features.0019_auto_20200607_1059... OK
bullettrain_api | Applying features.0020_auto_20200615_1300... OK
bullettrain_api | Applying features.0021_historicalfeaturesegment... OK
bullettrain_api | Applying features.0022_auto_20200630_2115... OK
bullettrain_api | Applying organisations.0015_auto_20190924_1641... OK
bullettrain_api | Applying organisations.0016_auto_20190924_1716... OK
bullettrain_api | Applying organisations.0017_subscription_cancellation_date... OK
bullettrain_api | Applying organisations.0014_organisation_stop_serving_flags... OK
bullettrain_api | Applying organisations.0018_merge_20191003_1249... OK
bullettrain_api | Applying organisations.0019_subscription_customer_id... OK
bullettrain_api | Applying organisations.0020_auto_20200222_1159... OK
bullettrain_api | Applying organisations.0021_auto_20200619_1555... OK
bullettrain_api | Applying projects.0002_projectpermission_userpermissiongroupprojectpermission_userprojectpermission... OK
bullettrain_api | Applying projects.0003_auto_20200216_2050... OK
bullettrain_api | Applying projects.0004_auto_20200220_0044... OK
bullettrain_api | Applying projects.0005_auto_20200221_2317... OK
bullettrain_api | Applying projects.0006_auto_20200224_2106... OK
bullettrain_api | Applying projects.0007_auto_20200504_1322... OK
bullettrain_api | Applying sessions.0001_initial... OK
bullettrain_api | Applying sites.0001_initial... OK
bullettrain_api | Applying sites.0002_alter_domain_unique... OK
bullettrain_api | Applying trench.0001_initial... OK
bullettrain_api | Applying trench.0002_auto_20190111_1403... OK
bullettrain_api | Applying trench.0003_auto_20190213_2330... OK
bullettrain_api | Applying users.0025_auto_20200509_1326... OK
bullettrain_api | Applying users.0026_ffadminuser_google_user_id... OK
bullettrain_api | Applying users.0027_ffadminuser_github_user_id... OK
bullettrain_api | /app/src/app/settings/common.py:45: UserWarning: GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:48: UserWarning: GA_TABLE_ID not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GA_TABLE_ID not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:262: UserWarning: `SENDGRID_API_KEY` has not been configured. You will not receive emails.
bullettrain_api | warnings.warn(
bullettrain_api |
bullettrain_api | 184 static files copied to '/app/src/static'.
bullettrain_api | /app/src/app/settings/common.py:45: UserWarning: GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:48: UserWarning: GA_TABLE_ID not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GA_TABLE_ID not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:262: UserWarning: `SENDGRID_API_KEY` has not been configured. You will not receive emails.
bullettrain_api | warnings.warn(
bullettrain_api | /app/src/app/settings/common.py:45: UserWarning: GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:48: UserWarning: GA_TABLE_ID not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GA_TABLE_ID not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:262: UserWarning: `SENDGRID_API_KEY` has not been configured. You will not receive emails.
bullettrain_api | warnings.warn(
bullettrain_api | INFO 2020-08-14 12:03:06,229 autoreload 12 140359583770432 Watching for file changes with StatReloader
bullettrain_api | /app/src/app/settings/common.py:45: UserWarning: GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:48: UserWarning: GA_TABLE_ID not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GA_TABLE_ID not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:262: UserWarning: `SENDGRID_API_KEY` has not been configured. You will not receive emails.
bullettrain_api | warnings.warn(
bullettrain_api | Operations to perform:
bullettrain_api | Apply all migrations: admin, api, audit, auth, authtoken, contenttypes, db, environments, features, organisations, permissions, projects, segments, sessions, sites, trench, users
bullettrain_api | Running migrations:
bullettrain_api | No migrations to apply.
bullettrain_api | /app/src/app/settings/common.py:45: UserWarning: GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:48: UserWarning: GA_TABLE_ID not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GA_TABLE_ID not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:262: UserWarning: `SENDGRID_API_KEY` has not been configured. You will not receive emails.
bullettrain_api | warnings.warn(
bullettrain_api |
bullettrain_api | You have requested to collect static files at the destination
bullettrain_api | location as specified in your settings:
bullettrain_api |
bullettrain_api | /app/src/static
bullettrain_api |
bullettrain_api | This will overwrite existing files!
bullettrain_api | Are you sure you want to do this?
bullettrain_api |
bullettrain_api | Traceback (most recent call last):
bullettrain_api | File "src/manage.py", line 11, in <module>
bullettrain_api | execute_from_command_line(sys.argv)
bullettrain_api | File "/app/.venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
bullettrain_api | utility.execute()
bullettrain_api | File "/app/.venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 375, in execute
bullettrain_api | self.fetch_command(subcommand).run_from_argv(self.argv)
bullettrain_api | File "/app/.venv/lib/python3.8/site-packages/django/core/management/base.py", line 323, in run_from_argv
bullettrain_api | self.execute(*args, **cmd_options)
bullettrain_api | File "/app/.venv/lib/python3.8/site-packages/django/core/management/base.py", line 364, in execute
bullettrain_api | output = self.handle(*args, **options)
bullettrain_api | File "/app/.venv/lib/python3.8/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 185, in handle
bullettrain_api | if input(''.join(message)) != 'yes':
bullettrain_api | EOFError: EOF when reading a line
bullettrain_api | Type 'yes' to continue, or 'no' to cancel: /app/src/app/settings/common.py:45: UserWarning: GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:48: UserWarning: GA_TABLE_ID not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GA_TABLE_ID not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:262: UserWarning: `SENDGRID_API_KEY` has not been configured. You will not receive emails.
bullettrain_api | warnings.warn(
bullettrain_api | Operations to perform:
bullettrain_api | Apply all migrations: admin, api, audit, auth, authtoken, contenttypes, db, environments, features, organisations, permissions, projects, segments, sessions, sites, trench, users
bullettrain_api | Running migrations:
bullettrain_api | No migrations to apply.
bullettrain_api | /app/src/app/settings/common.py:45: UserWarning: GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GOOGLE_SERVICE_ACCOUNT not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:48: UserWarning: GA_TABLE_ID not configured, getting organisation usage will not work
bullettrain_api | warnings.warn("GA_TABLE_ID not configured, getting organisation usage will not work")
bullettrain_api | /app/src/app/settings/common.py:262: UserWarning: `SENDGRID_API_KEY` has not been configured. You will not receive emails.
bullettrain_api | warnings.warn(
bullettrain_api |
bullettrain_api | You have requested to collect static files at the destination
bullettrain_api | location as specified in your settings:
bullettrain_api |
bullettrain_api | /app/src/static
bullettrain_api |
bullettrain_api | This will overwrite existing files!
bullettrain_api | Are you sure you want to do this?
bullettrain_api |
bullettrain_api | Traceback (most recent call last):
bullettrain_api | File "src/manage.py", line 11, in <module>
bullettrain_api | execute_from_command_line(sys.argv)
bullettrain_api | File "/app/.venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
bullettrain_api | utility.execute()
bullettrain_api | File "/app/.venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 375, in execute
bullettrain_api | self.fetch_command(subcommand).run_from_argv(self.argv)
bullettrain_api | File "/app/.venv/lib/python3.8/site-packages/django/core/management/base.py", line 323, in run_from_argv
bullettrain_api | self.execute(*args, **cmd_options)
bullettrain_api | File "/app/.venv/lib/python3.8/site-packages/django/core/management/base.py", line 364, in execute
bullettrain_api | output = self.handle(*args, **options)
bullettrain_api | File "/app/.venv/lib/python3.8/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 185, in handle
bullettrain_api | if input(''.join(message)) != 'yes':
bullettrain_api | EOFError: EOF when reading a line
bullettrain_api | Type 'yes' to continue, or 'no' to cancel: %
First of all Flagsmith it is a great project. I am giving it a try on my local environment with docker-compose. As described in the documentation, once the docker-compose is up and running one can create an admin user by docker-compose run --rm --entrypoint ".venv/bin/python src/manage.py createsuperuser" api
Unfortunately when running it fails:
# Being at the this repository directory.
sudo docker-compose run --rm --entrypoint ".venv/bin/python src/manage.py createsuperuser" api
Starting flagsmith_influxdb ... done
Starting flagsmith_postgres ... done
Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: exec: ".venv/bin/python": stat .venv/bin/python: no such file or directory: unknown
I have worked around it either by replacing the .venv
for the python binary directly:
sudo docker-compose run --rm --entrypoint "python src/manage.py createsuperuser" api
Or entering in the container and running it from there:
sudo docker exec -it flagsmith_api /bin/bash
cd app/src
python manage.py createsuperuser
Do you want me to make a PR to fix the documentation or am I missing something here?
Hi guys,
Would you mind adding InfluxDB to the Dockerfile?
Cheers,
Olga
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.