https://github.com/safe-global/safe-config-service
The safe-config-service is a service that provides configuration information in the context of the Safe clients environment
https://github.com/safe-global/safe-config-service
django ethereum gnosis-safe python
Last synced: 6 months ago
JSON representation
The safe-config-service is a service that provides configuration information in the context of the Safe clients environment
- Host: GitHub
- URL: https://github.com/safe-global/safe-config-service
- Owner: safe-global
- License: mit
- Created: 2021-04-14T14:48:38.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-09-11T11:38:58.000Z (11 months ago)
- Last Synced: 2025-09-11T11:41:23.880Z (11 months ago)
- Topics: django, ethereum, gnosis-safe, python
- Language: Python
- Homepage:
- Size: 1.31 MB
- Stars: 32
- Watchers: 11
- Forks: 118
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# safe-config-service
[](https://coveralls.io/github/gnosis/safe-config-service)
The `safe-config-service` is a service that provides configuration information in the context of the Safe clients environment (eg.: list of available safe apps and chain metadata).
## Requirements
- `docker-compose` – https://docs.docker.com/compose/install/
- Python 3.14.0
## Setup
In order to start the server application:
#### 1. Install the required Python dependencies. Eg.: With a python virtual environment:
```shell
python -m venv venv # creates a virtual environment venv in the local directory
source venv/bin/activate
pip install -r requirements-dev.txt
pip install setuptools
```
#### 2. Launch the Postgres database image
```shell
docker compose up -d db
```
#### 3. Execute pending database migrations
```shell
python src/manage.py migrate
```
#### 4. Create an admin user
The admin interface of the service will be available under `http://localhost:8000/admin` but you need to have an admin registered before you are able to access the panel.
To create an admin user:
```shell
python src/manage.py createsuperuser
```
#### 5. Launch the service:
```shell
python src/manage.py runserver
```
By default the service will be available under http://127.0.0.1:8000/
## Configuration
The service is already configured for development purposes however if you wish to deploy it in a production environment you should set some sensitive parameters such as: `POSTGRES_USER`
, `POSTGRES_PASSWORD`, `SECRET_KEY`.
`DEBUG` should be set to `false`.
We provide the `.dev.env` file which explains the role of each environment variable. You can set the configuration using this file and read it in terminal session where the application will be
executed.
## Testing
Pytest is used to run the available tests in the project. **Some of these tests validate the integration with the database
so having one running is required**. From the project root:
```shell
docker compose up -d db
pytest src
```
## Code Style Formatter and Linter
Code formatting and linting are enforced before every commit using `pre-commit`.
To manually trigger the checks, run:
```shell
pre-commit run --all-files
```
## Licensing
This repository contains code developed under two different ownership and licensing regimes, split by a defined cut-over date.
- **Up to and including February 16, 2026**
Code is © Safe Ecosystem Foundation and licensed under the **MIT License**.
The final SEF-owned MIT snapshot is tagged as: **`sef-mit-final`**
- **From February 17, 2026 onward**
New development is © Safe Labs GmbH and licensed under the
**Functional Source License, Version 1.1 (MIT Future License)**.
Users who require a purely MIT-licensed codebase should base their work on the `sef-mit-final` tag. The historical MIT-licensed code remains MIT and is not retroactively relicensed.
For full details, see `LICENSE.md` and `NOTICE.md`.