This repo is a docker-compose stack to run the core services for idea-fast WP3.
There are a couple of services defined here:
The stack relies on three manually created docker networks. Check if these already exist, and, if not, create them:
docker network list
docker network create web
docker network create database
docker network create ideafast-etl- Do not setup the TLS certification as indicated below.
- Disable HTTP/S redirects and SSL by temporarily commenting the associated Traefik config in the core/traefik.toml file on lines 5 - 10.
- For each individual service you want to test:
- Update Traefik hosts labels to your local host in the
docker-compose.ymlfiles . For example, for the api, changeapi.wp3.ideafast.eutoapi.localhost. - Comment out the Traefik
tlsandentrypointlabels:entrypoints=websecure,tls=true, andtls.certresolver=leresolver.
- Update Traefik hosts labels to your local host in the
Spin up the reverse proxy and the service you want to test from their respective directories (as indicated below)
To setup Treafik for the reverse proxy, we need to enable TLS certification (via Let's Encrypt) to serve over HTTPS. Navigate to the core directory, create a acme.json file with proper access permissions:
cd core
touch acme.json
chmod 600 acme.jsonAt this stage, the supportdocs website uses basic authentication with a usersfile in the core directory. Differently, the api uses environmental variables to handle this. Either way, until the support documentation website is deprecated, we need to create a usersfile and add usernames and password for access. In the core directory, create a usersfile document, and add usernames and passwords (see how to create these on the Treafik documentation):
touch usersfile
nano usersfile # or vim, or something else
# add username:passwords, save, and exitFinally, spin up the reverse proxy:
docker-compose up -dThe IDEAFAST/ETL pipeline is used as a submodule to simplify working with their compose file. When you first download the repo the /instances/pipeline/ideafast_etl folder will be empty and you'll need to initialise it:
git submodule update --init --recursiveUpdating submodules can be done by entering the following command. Note, however, that this does not merges the update (i.e., the reference to a specific commit of the submodule) into the current directory. You can add --merge to this command, but unless you update this stack git repository, this will start to diverge. Alternatively, use the --merge parameter and push the changes to the repository, or execute this command on your local machine, push changes and pull down the overall ideafast/stack repository to achieve the same result.
git submodule update --remote # --mergeEach instance slightly differs in the setup due to the dependency on an image, submodule or environmental variables. Please see instructions how to start and update each service below:
For each service, navigate (cd) into the directory and follow the steps below
To setup the service, the service needs some environmental variables to be set, and an ssh key to acces the private documentation repository.
- Get the
sshkeys onto the server (using, for examplescp), as outlined in the ideafast/wp3-api README. - copy the example file and fill in the environmental variables
cp .env.example .env # fill in the environmental variables in the created .env file - spin up the container
docker-compose up -d
To get the latest updates to the ideafast/wp3-api on the server:
- in your local ideafast/wp3-api repository, build a docker image and push to docker hub
poetry run bump -b patch # or minor, or major poetry run build poetry run publish - then, in this repository, navigate to the instances/api directory, pull down the latest image and restart the container
docker pull ideafast/wp3-api docker-compose up -d
At this point, the study dashboard is a simple HTML placeholder. Deploy it by running"
docker-compose up -dOnce the FS finishes, the inventory will be deprecated.
Set up can be achieved as follows (instructions taken from prior documentation):
cp .snipeit.env.example .snipeit.env
docker-compose up -d
Once the service is running, enter the container, create an artisan key:
docker exec -it snipeit sh
php artisan key:generate
Copy this value , store this in the .snipeit.env and restart the container:
docker-compose up -d
Once the FS finishes, the middleware will be deprecated.
Duplicate the environmental variable files and fill in as appropriate
cp .consumer.env.example .consumer.live.env
cp .dtransfer.env.example .dtransfer.live.env
Spin up the service
docker-compose up -d
The MongoDB requires some slight configuration if spun up the first time. See the intances/middleware/README for more details.
The ETL Pipeline uses ideafast/ideafast-etl as a submodule, particularly due to its depdency on Python scripts that are not exported into the docker image. First, we need to set some required environmental variables and initial values for the pipeline. Copy the (nested) example files and fill appropriately:
cp .env.example .env
cp /init/connections.yaml.example /init/connections.yaml
cp /init/variables.json.example /init/variables.jsonThe docker-compose.yaml file inside the submodule sets up the pipeline for us, though we need to alter some (network) settings slightly, for which we have an additional docker-compose.yaml file to override these. Spin up the service with:
docker-compose -f ideafast_etl/docker-compose.yaml --env-file .env -f docker-compose.yaml up -dAs we explicitely indicate the file to use (with the -f parameter), shutting down the services requires the same:
docker-compose -f ideafast_etl/docker-compose.yaml --env-file .env -f docker-compose.yaml downIf you want to update any environmental variables, connections or variables (as in the /init folder), simply apply the changes and run the same docker command as above. If you want to pull in changes to the Python scripts made in the ideafast/ideafast-etl, run:
git submodule update --remoteOnce the FS finishes, the support system will be deprecated.
Set up can be achieved as follows (instructions taken from prior documentation):
git clone git@github.com:ideafast/ideafast-devicesupportdocs-web.git docs
chmod 755 jekyll-build.sh && ./jekyll-build.sh
docker-compose up -d
docker-compose up -d