{"id":38486772,"url":"https://github.com/aegee/myaegee","last_synced_at":"2026-05-31T11:01:05.213Z","repository":{"id":38084088,"uuid":"73822546","full_name":"AEGEE/MyAEGEE","owner":"AEGEE","description":"A docker environment to bootstrap the whole membership system","archived":false,"fork":false,"pushed_at":"2026-05-12T09:43:10.000Z","size":94934,"stargazers_count":9,"open_issues_count":387,"forks_count":9,"subscribers_count":7,"default_branch":"stable","last_synced_at":"2026-05-12T11:31:04.840Z","etag":null,"topics":["docker","docker-compose","hacktoberfest","vagrant"],"latest_commit_sha":null,"homepage":"https://my.aegee.eu","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AEGEE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-11-15T14:42:00.000Z","updated_at":"2026-05-12T09:33:52.000Z","dependencies_parsed_at":"2026-02-15T13:26:02.396Z","dependency_job_id":null,"html_url":"https://github.com/AEGEE/MyAEGEE","commit_stats":null,"previous_names":[],"tags_count":720,"template":false,"template_full_name":null,"purl":"pkg:github/AEGEE/MyAEGEE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AEGEE%2FMyAEGEE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AEGEE%2FMyAEGEE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AEGEE%2FMyAEGEE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AEGEE%2FMyAEGEE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AEGEE","download_url":"https://codeload.github.com/AEGEE/MyAEGEE/tar.gz/refs/heads/stable","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AEGEE%2FMyAEGEE/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33728391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","hacktoberfest","vagrant"],"created_at":"2026-01-17T05:36:41.918Z","updated_at":"2026-05-31T11:01:05.206Z","avatar_url":"https://github.com/AEGEE.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AEGEE-Europe's Online Membership System\n## `MyAEGEE`\n\n## Description\nThe repository for the [\"Online Membership System\" (OMS)](https://github.com/AEGEE/MyAEGEE), an open-source intranet project of the student/youth association [AEGEE-Europe](http://aegee.org/).\n\nIt makes use of docker, and docker-compose.\n\n[Read more about the project](https://myaegee.atlassian.net/wiki/spaces/GENERAL/overview)\n\nA short perspective: the educational value of this project. Head to [roadmap.sh](https://roadmap.sh) and see all you could learn thanks to this project (almost everything, short of blockchain):\n1. [software architecture](https://roadmap.sh/software-architect)\n1. [devops](https://roadmap.sh/devops)\n1. [backend](https://roadmap.sh/backend)\n1. [cybersecurity](https://roadmap.sh/cyber-security)\n1. [frontend](https://roadmap.sh/frontend)\n1. [QA](https://roadmap.sh/qa)\n1. ... and more ;)\n\n# Installation\n## Pre-requisites: installations required\n\nInstall\n1. First [Git](https://git-scm.com/downloads) (you might already have Git installed through other sources if you worked with git/GitHub before)\n2. then [Virtualbox](https://www.virtualbox.org/wiki/Downloads),\n3. and finally [Vagrant](https://www.vagrantup.com/downloads.html).\n\nEven if you have a linux box, this is **very** recommended. If you decide to not do it, *sigh...* but don't come to cry to us.\n\nIf you decide you know better than us, [install docker and docker-compose](https://docs.docker.com/compose/install/) on your Windows/Linux/Mac machine, instead of Virtualbox and Vagrant. (Make sure you install the correct versions, they can be found in the provisioning scripts --  also, [Mac and linux have different versions of grep](https://stackoverflow.com/a/59393993) so again, your problem ;-) )\n\nNote: if you use Vagrant, Docker will be already automatically on the virtual machine.\n\nMemory requirements for the VM bootstrapped with Vagrant: 2GB (i.e. you need a machine with at least 3GB physical RAM)\n\n## Pre-requisites: terminology\nExplanation of the installation are here. Explanation of why we're doing it this way is [at the bottom](#under-the-hood).\n\nA note on terminology:\n- The computer you run Virtualbox on is the _HOST_.\n- The created VM which runs Docker is the _GUEST_.\n\n## Install the web application\n**NOTE on URL MAPPING**: to be able to use advanced features, the `hosts` file has to be edited. The procedure is handled by a script (both for Linux and Windows machine) provided in the repo. Details are explained below.\n\nFor manual edits, see [Advanced URL mapping and troubleshoot](#advanced-url-mapping-and-troubleshoot).\n\n### Linux\n\n\u003e On the _HOST_\n```\ngit clone --recursive https://github.com/AEGEE/MyAEGEE.git\ncd MyAEGEE\n./start.sh\n```\n\n**URL MAPPING for Linux**: You don't have to do anything, the mapping is handled by `start.sh`.\n\nYou will have to wait for up to 20'. A message appears when the bootstrap completes, and you can check if it works in the ways described in the [Usage section](#accessing-it). Note that sometimes there WILL be red output, but it is not necessarily indicator of an error (unless it's the VERY last message, and it begins with the word \"ERROR\")\n\nSee [below](#startsh-and-makefile) for explanation of `start.sh`\n\n### Non-linux\n\nForeword: if you want to learn WSL (windows subsystem for linux) and help us improve the next steps, you're most welcome!\n\n\u003e On the _HOST_\n```\ngit clone --recursive https://github.com/AEGEE/MyAEGEE.git\ncd MyAEGEE\n```\n**URL MAPPING for Windows:**\nAs a helper in the windows case, you have the script \"`run_as_win_administrator.bat`\" (not very advanced). When you open it, it will tell you what to do, which is written below. To open it:\n1. To open it you have to right-click it and click \"run as administrator\".\n2. It will open the file you need to edit in notepad, AND open a different terminal window that will tell you the line to copy (which you can find below).\n3. Paste the content at the last line of the file\n\t```192.168.168.168 appserver.test my.appserver.test traefik.appserver.test portainer.appserver.test pgadmin.appserver.test```\n4. Delete the file called `Vagrantfile` and rename `Vagrantfile.windows` into `Vagrantfile`\n5. Save, and exit.\n\nFor any troubleshoot, see [Advanced URL mapping and troubleshoot](#advanced-url-mapping-and-troubleshoot).\n\nOnce set up the mapping, you can continue the installation:\n```\nvagrant up\n```\n\nYou will have to wait for up to 25 minutes. A message appears when the bootstrap completes, and you can check if it works in the ways described in the [Usage section](#accessing-it).\n\n\n## Advanced URL mapping and troubleshoot\n**MANUAL EDIT**\nIf the script above did not work, you can also manually edit the `/etc/hosts` file on the _HOST_ machine (on Windows: `C:\\Windows\\system32\\drivers\\etc\\hosts`) to add the entry:\n\nVagrant case: `192.168.168.168 appserver.test my.appserver.test traefik.appserver.test portainer.appserver.test pgadmin.appserver.test`\n\nPure docker case: `127.0.0.1 appserver.test my.appserver.test traefik.appserver.test portainer.appserver.test pgadmin.appserver.test`\n\n**Windows write-permission issue**\nFor security reason, Windows could have rescrited writing permession. A workaround (original [source](https://windowsreport.com/access-denied-hosts-windows-10/)) is to copy the hosts file to a different location:\n\n1. Go to `C:\\Windows\\system32\\drivers\\etc\\hosts` and locate `hosts` file.\n2. Copy it to your Desktop, or any other folder that you can easily access.\n3. Open the `hosts` file on your Desktop with Notepad or any other text editor.\n4. Make the necessary changes (see above) and move the hosts file back to `C:\\Windows\\system32\\drivers\\etc\\hosts` directory.\n\n## Configuration file\nEverything related to the behaviour of the app is defined in the top-most `.env` file. Most important parameters are:\n\n`ENABLED_SERVICES`: telling which parts of the system are enabled\n\n`MYAEGEE_ENV`: telling in which mode the system is run\n\n`\u003cservicename\u003e_SUBDOMAIN`: telling how to access a specific service\n\nSee [below](#moving-parts) for more info.\n\n# Usage\n\n## Accessing it\n\nAfter launching the system, you have two ways to check everything is working:\n\n1) on the _HOST_\n```\n# on the _HOST_ you run the following\n\nvagrant ssh\n\n# ...which connects you to the _GUEST_, where docker is.\n```\nLet's run the commands and see that they should yield an output like\n```\nusername@computername:~/Documents/aegee/MyAEGEE$ vagrant ssh\nWelcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-111-generic x86_64)\n\n * Documentation:  https://help.ubuntu.com\n * Management:     https://landscape.canonical.com\n * Support:        https://ubuntu.com/advantage\n\n System information disabled due to load higher than 1.0\n\n * Kubernetes 1.19 is out! Get it in one command with:\n\n     sudo snap install microk8s --channel=1.19 --classic\n\n   https://microk8s.io/ has docs and details.\n\n97 packages can be updated.\n70 updates are security updates.\n\n\nThis system is built by the Bento project by Chef Software\nMore information can be found at https://github.com/chef/bento\nLast login: Fri Sep 18 14:13:43 2020 from 10.0.2.2\n\nappserver[/vagrant]$ [stable !?]\n```\n\nSo now you can run `docker ps`:\n\n```\nappserver[/vagrant]$ [stable !?] docker ps\nCONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS                 PORTS                                      NAMES\ncbe689ea9ee2        aegee/discounts:dev                    \"docker-entrypoint.s…\"   5 hours ago         Up 5 hours (healthy)   8084/tcp                                   myaegee_discounts_1\ned1c20a4e65a        aegee/statutory:dev                    \"docker-entrypoint.s…\"   5 hours ago         Up 5 hours (healthy)   8084/tcp                                   myaegee_statutory_1\nf60476fa4a6c        aegee/events:dev                       \"docker-entrypoint.s…\"   5 hours ago         Up 5 hours (healthy)   8084/tcp                                   myaegee_events_1\n06add303acd0        aegee/core:dev                         \"docker-entrypoint.s…\"   5 hours ago         Up 5 hours (healthy)   8084/tcp                                   myaegee_core_1\n72a7cb2d4100        postgres:10                            \"docker-entrypoint.s…\"   5 hours ago         Up 5 hours             5432/tcp                                   myaegee_postgres-statutory_1\n316ced849d6f        postgres:10                            \"docker-entrypoint.s…\"   5 hours ago         Up 5 hours             5432/tcp                                   myaegee_postgres-core_1\nf3110b11d9c6        postgres:10                            \"docker-entrypoint.s…\"   5 hours ago         Up 5 hours             5432/tcp                                   myaegee_postgres-discounts_1\n9985f6cd3042        postgres:10                            \"docker-entrypoint.s…\"   5 hours ago         Up 5 hours             5432/tcp                                   myaegee_postgres-events_1\n623356e7ef0d        dpage/pgadmin4:4.23                    \"/entrypoint.sh\"         6 hours ago         Up 6 hours             80/tcp, 443/tcp, 5050/tcp                  myaegee_pgadmin_1\n8263f843df15        portainer/portainer:1.22.1             \"/portainer -H unix:…\"   6 hours ago         Up 6 hours             9000/tcp                                   myaegee_portainer_1\nd056ce2c92e3        swaggerapi/swagger-ui:v3.28.0          \"/docker-entrypoint.…\"   6 hours ago         Up 6 hours             80/tcp, 8080/tcp                           myaegee_swagger_1\n4ee964dede44        traefik:v1.7.4-alpine                  \"/entrypoint.sh --we…\"   6 hours ago         Up 6 hours (healthy)   0.0.0.0:80-\u003e80/tcp, 0.0.0.0:443-\u003e443/tcp   myaegee_traefik_1\n30963e2faf63        aegee/portal:dev                       \"docker-php-entrypoi…\"   6 hours ago         Up 6 hours             80/tcp                                     myaegee_portal_1\n49485e19dc87        aegee/frontend:dev                     \"nginx\"                  6 hours ago         Up 6 hours             80/tcp, 8083/tcp                           myaegee_frontend_1\ne81bcc38bf76        aegee/nginx-static:latest              \"nginx -g 'daemon of…\"   6 hours ago         Up 6 hours (healthy)   80/tcp                                     myaegee_statutory-static_1\ndc2ea7b33c97        aegee/nginx-static:latest              \"nginx -g 'daemon of…\"   6 hours ago         Up 6 hours (healthy)   80/tcp                                     myaegee_events-static_1\n```\n\nwhat do we see here? That we can connect to vagrant (we are inside the virtual machine with `vagrant ssh`), and that a bunch of containers are up (we ask the docker containers with `docker ps`). We'll see later that we should use some commands (`make start`) on the _GUEST_, so knowing how to access the virtual machine is important.\n\n**HOORAY! YOUR SYSTEM IS UP!**\n\nFor any issue, see [**Troubleshooting**](#troubleshooting--other)\n\n2) you can navigate to it in your _HOST_ web browser.\n\nFor accessing it, the three most important URLs (*NB there is no https for development*):\n\n| Service | URL | Description |\n|---|---|---|\n| The app (MyAEGEE) | http://my.appserver.test | What you're here for |\n| Traefik | http://traefik.appserver.test | Quick test to see if everything works well |\n| Portainer | http://portainer.appserver.test | Visual docker manager |\n\nDo you connect to any of these three URLs without troubles? **HOORAY! YOUR SYSTEM IS UP!**\n\nSee right below for the URL of extra services.\n\nSee at the bottom for the [default credentials](#default-credentials) of MyAEGEE's fresh install.\n\n### Subdomains registered on traefik\nread \"_subdomain_.appserver.test\"; e.g. you put in your _HOST_ browser `http://traefik.appserver.test`\n\n|Subdomain|What|Container|\n|---|---|---|\n| my | MyAEGEE | frontend |\n| portainer | Easier container mgmt (development only) (under login)  | portainer |\n| traefik | Traefik's dashboard (under login) | traefik |\n| pgadmin | Administration of databases (development only) (under login) | pgadmin |\n| www | Website | wordpress |\n| wiki | AEGEE's Wiki, the backbone of knowledge | mediawiki |\n\nYou can customise these subdomains by editing the `.env` file as mentioned above, and relaunching the script (see below about `Makefile`).\n\n\nFIXME: [For more detailed usage guides see this usage tips page.](https://myaegee.atlassian.net/wiki/spaces/GENERAL/pages/23655986/Usage+tips)\nFor container-specific usage guides see the container's repository.\n\n## Easy script to manipulate the installation\n\n(At the end of this section there will be links to detailed explanations, don't panic!)\n\nThere is a file called `Makefile` that gives some easy shortcut to do stuff. This must be launched on the _GUEST_.\n\nOn first run of vagrant, the `bootstrap` target will be invoked (you don't need to do it). If you are stubborn and decide to not use Vagrant, you still don't have to invoke it (it is invoked by `start.sh`)\n\nThe general flow is that once you edit the `.env` file, `make start` should be run (on the _GUEST_) to update the running configuration.\n\nYou can invoke the easy scripting in the following way (this shell command must be run in the same folder of the `Makefile`):\n\n\u003e On the _GUEST_\n\n| Command | What |\n|---|---|\n| make bootstrap | (`init`, `build`, `start`) in this order. (Run only the first time by vagrant/`start.sh`) |\n| make init | Initialise the system (most likely you don't need to launch this) |\n| make build | Build the containers registered in the .env file |\n| make start | Run the containers registered in the .env file |\n| make monitor | If you didn't enable kibana, then you may want to have a look at the logs through this |\n| make live-refresh | Updates the containers to the new version (if any) and restarts them |\n| make stop/restart/hard-restart | Just don't use them on the server, EVER |\n| make bump | Only for development: updates the submodules |\n\nGuest? Host? wtf? read the [under the hood](#under-the-hood) section, and the [difference between start.sh and makefile](#start.sh-and-Makefile).\n\n### Reading the logs\n\nFor now, if one wants to follow some specific logs, they have to invoke helper.sh manually e.g.\n```\n./helper.sh --monitor container1 container2...containerN\n```\n\nLikewise, for now if one wants to execute a command on a container they have to invoke helper.sh manually e.g.\n```\n./helper.sh --execute containername command\n```\n\n## What's next?\n\nIt's your time to shine! Your system is set up, now it's up to you to create a new service, to improve an existing one, or to play with integrations leveraging existing services (e.g. wordpress, magento...). See the [moving parts](moving-parts) section that explain how to configure the system after you add something new.\n\nFor better development experience: the files in your _HOST_ folder `MyAEGEE` are mounted inside the _GUEST_ (location `/vagrant`), which means that if you create a file in the _GUEST_ `/vagrant` folder you will find it in your _HOST_ `\u003cyour cloned dir\u003e/MyAEGEE`, and vice versa if you edit a file in your repository it is reflected in the VM. This way you can use the IDE you use normally on the system you use normally, without the need of getting accustomed to some new tool!\n\nMake sure however to use an extension in your IDE called [editorconfig](https://editorconfig.org/#download)! It will avoid pains especially if your _HOST_ is a windows machine.\n\n### Example first tasks:\n1. change subdomain name, instead of accessing the app at `my.appserver.test` make it `imthebest.appserver.test`\n1. change the top left logo of AEGEE-Europe to some other (small enough) logo\n1. change background colour, instead of a white one make it green (and I don't mean by going to \"inspect element\" and changing it temporarily!)\n1. change content and/or style of the footer\n1. change order/remove one of the microservices from the menubar on the left\n1. In resources \u003e resources, add another box linking to your antenna's website\n1. Add an user to an antenna/circle (this is less programming-wise, more getting to know the platform)\n1. Change the email address of the first 5 users generated: instead of @example.com, make them @example.org\n1. Core-specific: change how many results you can visualise at a time\n1. Events-specific: in the Board view add an emoji to statuses \"Accepted\"/\"Pending\"/\"Rejected\"\n1. Statutory-specific: ?? (propose your own!)\n1. SU-specific: ?? (propose your own!)\n\n## Contribute\n[You can read more about contributing on our confluence.](https://myaegee.atlassian.net/wiki/spaces/GENERAL/overview)\n\n## Issue tracker\n[We use JIRA as our preferred issue tracker.](https://myaegee.atlassian.net/projects/MEMB/issues)\n\n## Licence\nApache License 2.0, see LICENSE.txt for more information.\n\n# Under the hood\n\n`Virtualbox` is a utility that lets people creating virtual machines (VM) on your computer. The created VM is the _GUEST_. The computer you run Virtualbox on is the _HOST_\n\n`Vagrant` is used as a tool to define VMs characteristics, that will be then run through Virtualbox - in other words, it is used so we can write a manifesto that defines the characteristics of a VM, and the VM generated has always the same characteristics. It is useful in this case to model the development VM just as if it was the server on which we will run the application.\n\n`Make` is a tool that, among other things, chains commands together. So, for instance, you write in the `Makefile` that `a` runs a specific long command, `b` a different long command, and you can call the commands with `make a` or `make b`. You can also write a command `c` which is a chain of `a` followed by `b`. We use it to set a 'flow' of operations that should be followed (e.g. as explained, `make bootstrap` chains 3 operations, and one such operation is used very often i.e. `build` and/or `start`). This is used on the _GUEST_.\n\n`start.sh` runs either `vagrant up` or `make bootstrap` (according to how you want to run your system in local) so one has to literally only launch one command and it's set to be working, after the startup time of around 10-20 minutes (according to internet connection speed). This is used on the _HOST_.\n\n### `start.sh` and Makefile\n\n\u003e `start.sh`\n\nOn the _HOST_, i.e. the machine that runs the virtual machine, you use `start.sh` which can either:\n- Start the vm\n  - Use `./start.sh` for normal development cycle: app runs in development mode\n  - Use `./start.sh --fast` for sysops/integration development cycle: app runs in production mode so you can concentrate on developing integration to the app, not the app itself\n- Reset the settings to recreate the virtual machine (`./start.sh --reset`). This is in case you experimented so hard that you made something exploooode. Doing so, you will lose the users and other content you created on your local instance of MyAEGEE, but this will not remove your source code.\n\nIf you are a know-it-all who doesn't want to use Vagrant, use `./start.sh --no-vagrant` (but again, if you're in trouble you will only get superficial support from our side)\n\n\u003e Makefile\n\nOn the _GUEST_, i.e. the virtual machine that runs docker, you use `make` which uses the `Makefile` (explained [above](#easy-script-to-manipulate-the-installation)).\n\n## Individual containers\n\nFor prerequisites and installation of individual containers, see their `docker`(/`-compose`) files, located in the `(service)/docker` folder in their respective repository.\n\nFor more detailed info, we hoped to have a better knowledge base [here](https://myaegee.atlassian.net/wiki/spaces/GENERAL/pages/224231425/Microservices+information), it's not great right now but it's a something `¯\\_(ツ)_/¯`\n\n## Moving parts\n\n### .env\nThe file contains variables where e.g. you define the base url (`aegee.test`) and where will various app be reachable (e.g. `my.` for `my.aegee.test` to reach the frontend).\n\nList of defined variables:\n- base url\n- subdomain urls\n- activated services\n- runtime environment\n- some default passwords\n- SMTP user/pass/server for mailer\n- Sendgrid user/pass\n- Superadmin credentials (for other services to read; it does not set them in the system)\n- folder locations\n\nso for instance...\n\n*Example 1*: you would use this file if you had a problem with 1 microservice and wanted to remove it from the setup. Note: the removal of the ms would not stop a container if there was one running already, so make sure you cleanup (not mandatory, just avoids headaches in case of troubleshooting and \"oh, I forgot about this).\nHow would you do that? Example: discounts\n- Edit .env file\n- Remove the service from the array `ENABLED_SERVICES`\n- `docker stop myaegee_discounts_1 \u0026\u0026 docker rm myaegee_discounts_1` (on the _GUEST_)\n\n*Example 2*: you would use this file if you wrote a new microservice and wanted to add it from the setup.\nHow would you do that? Example: your service is into a folder called `boombastic` (at the same level of the folders `core`,`events` etc)\n- Edit .env file\n- Add the service at the end of the array `ENABLED_SERVICES=\u003cwhatever is here already\u003e:boombastic`. Remember: all the services are separated by colon (`:`)\n- `make start` (on the GUEST)\n\n### docker-compose.yml\nIn the docker-compose files there are the definitions of where an app should be reached.\n\nDocker-compose will use the variables defined above, and put them under the `labels` section of a container (if a container needs it). The `labels` section is parsed by traefik to route all the HTTP calls to the correct containers. In other words, this is where the values contained in the `.env` file are used to specify that the app replies on '`my.`appserver.test' instead of e.g. '`magic.`appserver.test'.\n\n### /etc/hosts\n\nThis file which is located on the _HOST_ machine is used to add new [subdomains for the services](#subdomains-registered-on-traefik): e.g. add `pgadmin` to be able to go to `pgadmin.appserver.test` and use a visual tool for the databases. The important part is that this name of subdomain matches the one defined in the file `.env`\n\n# Troubleshooting / other\n\n- Remember to check what is running on your _GUEST_ via `docker ps` (or portainer). Enter your _GUEST_ with `vagrant ssh` (from your _HOST_).\n\n- By running the system in development mode, you may get \"NGINX error 403 (forbidden)\" when you vist `my.appserver.test` the first time. To fix it, follow the steps after `frontend helper` in the file [orchestrate_docker.sh](scripts-vagrant_provision/orchestrate_docker.sh)\n\n- If you are stuck and something doesn't seem to work, make sure you don't have a mismatch between `/etc/hosts`, the URL you type in the browser, and the address that the system expects. See file `current-config.yml` for that: it is a file which is generated every time `make start` is launched. It contains the description of the desired state of the app. NB: `/etc/hosts` is the only file mentioned in this README that only exists in the _HOST_ and is not mounted (as described above).\n\n- You can add dev-tools to the array of services and troubleshoot docker using portainer (mentioned above). Make sure that you have added also the URL to the hostfile (`/etc/hosts`) and that it matches the variable defined in `.env`\n\n- As written in the 'moving parts' section: if you remove services from array `ENABLED_SERVICES`, they are not stopped. This is not a problem in general, just don't be surprised if when you start (having the configuration `ENABLED_SERVICES=core:frontend:events`) and stop later (with the configuration `ENABLED_SERVICES=events`) docker writes a message `WARNING: found orphan containers`.\n\n- `make start` calls a script `helper.sh` that will look into all folders described in `ENABLED_SERVICES` for a `docker-compose.yml` file. Then it creates in-memory a giant docker-compose configuration which is what will be run. This configuration is also outputted to a file (`current-config.yml`) for ease of troubleshoot.\n\n- Running the system in `development` mode means that every `docker-compose.yml` has extra-settings in a `docker-compose.dev.yml` file (in the same folder). Some modules are not thought for development mode, if you find an error about a missing `docker-compose.dev.yml` just create an empty one where the system wants it.\n\n## How to run unit/integration tests when you start the system\n\n?? @serge1peshcoff\n\n## Default credentials\n\nFrom the [core readme](./core/README.md): there are test users. All users have `5ecr3t5ecr3t` as password.\n\n- `admin@example.com` - admin\n- `board@example.com` - board member of antenna\n- `member@example.com` - regular member of antenna\n- `not-confirmed@example.com` - member who is not confirmed\n- `password-reset@example.com` - member who requested a password reset\n- `suspended@example.com` - a suspended member\n\nYou can use `5ecr3t` for a password reset token (for a member with email `password-reset@example.com`) and `5ecr3t` for a mail confirmation (for a member with email `not-confirmed@example.com`).\n\n**NOTICE** if you use the `--fast` mode of `start.sh`, then core does NOT provision in production mode, so you will be fast in bootstrapping but without users to play with. This should not be an issue for you if you are interested in only the infrastructure work; if you however need a user, you can register yourself.\n\n## How to reset the database and recreate\n\nA couple of options\n\n1) As mentioned above, you can enable dev-tools for pgadmin. From there you can delete the db\n  - Notice unfortunately you have to configure pgadmin when you first login: specify the host, username, password.\n    - Username and password of the database is NOT the same username and password of pgadmin. Find everything in the files mentioned in 'moving parts', or `current-config.yml` for ease.\n    - You put the name of the service as hostname (docker internally resolves stuff with its internal DNS). In other words, every container is reachable at the host named like its service (e.g. `frontend`, `core`, `postgres-core`, etc). The 'service' is named in the `docker-compose.yml` under the key `services:`. Again: _the title of the container is also the hostname of the container_\n\n2) Use portainer to delete the service and db, then `make start` to fix everything.\n  - The service must be deleted/restarted because it runs the migrations and therefore fills the DB with the important data. If you delete only the db, the service will expect the db to be filled with data, causing errors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faegee%2Fmyaegee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faegee%2Fmyaegee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faegee%2Fmyaegee/lists"}