This repository provides a setup to run Gnosis Safe on a custom host with minimal dependencies, mainly Docker.
The configuration consists of:
local
testing and production
deployment
local
testing and production
deployment for all services in configs/
The repository vendors all dependencies in vendor/
:
gnosis-safe-client-gateway@v3.3.0:
name: gnosis-safe-client-gateway
dir: vendor/github.com/gnosis/safe-client-gateway
repo: https://github.com/gnosis/safe-client-gateway
ref: v3.3.0
commit: a05494a8f1d6e33eff12bfe9deb88a3efa70c41b
gnosis-safe-config-service@v2.0.1:
name: gnosis-safe-config-service
dir: vendor/github.com/gnosis/safe-config-service
repo: https://github.com/gnosis/safe-config-service
ref: v2.0.1
commit: 44836efc91a8f1a75e023d57a73b463d81824d6a
gnosis-safe-react@tb/configurable-mainnet-endpoints-based-on-dev:
name: gnosis-safe-react
dir: vendor/github.com/hoprnet/safe-react
repo: https://github.com/hoprnet/safe-react
ref: tb/configurable-mainnet-endpoints-based-on-dev
commit: a7e43151ca9f149e4c16627c73d6bdf5f17f1942
gnosis-safe-transaction-service@v3.1.25:
name: gnosis-safe-transaction-service
dir: vendor/github.com/gnosis/safe-transaction-service
repo: https://github.com/gnosis/safe-transaction-service
ref: v3.1.25
commit: 90e87a2b5a894469cf09dec1507a954e266dae05
In short, Gnosis Safe relies in a series of centralized services to provide the great UX it currently has. Unfortunately, as any centralized provider, it can go down and make everyone unhappy that their DAO can not buy the latest stoner cat or whatever the kids are doing nowadays.
So instead of tweeting about Gnosis Safe being done (we are guilty of have doing so), we put together this stack that quickly spins your own Gnosis Safe for you to use.
These steps are meant as guidelines and might be 1-to-1 what you need. Instead use this repository as a guide and adapt it where needed to suite your requirements.
PLACEHOLDER_CHANGE_ME
in the configs/
directory and replace
each occurence with a proper value. Most service configurations are common
between local
and production
versions and therefore kept in a separate
.common
filemake prepare_production
GNOSIS_ENVIRONMENT=local
for local testing)
GNOSIS_ENVIRONMENT=production \
GNOSIS_SAFE_DOMAIN=gnosis-safe.abcd.ef \
GNOSIS_SAFE_SUPPORT_EMAIL=tech@gnosis-safe.abcd.ef \
make start
docker exec -ti gnosis_config-service-web_1 python src/manage.py createsuperuser
docker exec -ti gnosis_transaction-service-web_1 python manage.py createsuperuser
${GNOSIS_SAFE_DOMAIN}
config-service-${GNOSIS_SAFE_DOMAIN}
transaction-service-${GNOSIS_SAFE_DOMAIN}
https://config-service.${GNOSIS_SAFE_DOMAIN}/admin
, replace the placeholder with your domainchains
and click Add Chain
1
100
mainnet
https://etherscan.io/address/{{address}}
https://etherscan.io/address/{{txHash}}
ether
ETH
18
https://cryptologos.cc/logos/ethereum-eth-logo.png
http://172.16.238.100:8888
#ffffff
#000000
https://etherchain.org/api/gasPriceOracle
average
1.0
1.1.1
https://transaction-service.${GNOSIS_SAFE_DOMAIN}/admin
, replace the placeholder with your domainweb hooks
and click Add Web Hook
http://172.16.238.110:3666/v1/hook/update/WEBHOOK_TOKEN_PLACEHOLDER
, use the token from the client gateway configurationhttps://transaction-service-${GNOSIS_SAFE_DOMAIN}/admin/history/ethereumblock/
Once the indexer has caught up with the network top, you can start using your
custom Gnosis Safe installation at https://${GNOSIS_SAFE_DOMAIN}
.