| .github | ||
| .vscode | ||
| devcontainer-example | ||
| development | ||
| docs | ||
| images | ||
| overrides | ||
| resources | ||
| tests | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .shellcheckrc | ||
| CODE_OF_CONDUCT.md | ||
| compose.yaml | ||
| CONTRIBUTING.md | ||
| docker-bake.hcl | ||
| example.env | ||
| install_x11_deps.sh | ||
| LICENSE | ||
| pwd.yml | ||
| README.md | ||
| requirements-test.txt | ||
| setup.cfg | ||
RAFNAV Docker Setup & Usage
Development
!! You need to be connected to WSL before proceeding
Pre-requisites
To get started, you must have set up an IT Workspace environment.
Introduction
You will be working in the ./development folder a.k.a. a dev workspace. Follow the steps below to set up the workspace.
Workspace Setup
- Clone the Repo into your working directory
git clone https://github.com/cronos-capital/RAFNAV-Docker.git
cd RAFNAV-Docker
- Create the devcontainer and VsCode configuration from the templates provided
cp -R devcontainer-example .devcontainer
cp -R development/vscode-example development/.vscode
Build the Docker Image
Run the following command in your working directory
docker build -t rafnav_bench:latest ./images/rafnav_bench
You may change the tag to a more relevant naming convention. However, you need to change the image used for development in the correct docker-compose file: ./.devcontainer/docker-compose.yml
Container Initialization
We will be attaching a VS Code window to the docker container workspace. This requires the dev containers extension
- Open the RAFNAV-Docker folder with Vs Code.
- Open the command pallet with ctrl + shift + p or View->Command Pallet
- Run the command
dev containers: Reopen in container - Wait for the container to warm up...
GitHub Login (GitHub CLI)
- Make sure you have git and Github CLI installed on windows
- Log in to GitHub from VsCode to sync your github credentials with GitHub
RAFNAV Installation
Development Branch Apps Install
frap-install -j apps-development.json -v
Prod Apps Install
frap-install -j apps-prod.json -v
Note: For additional args and configs run frap-install --help first.
- cd into Rafnav's development bench. An alias has already been assigned. Run the following command:
go-rafnav_bench
- Now you are able to start development on RAFNAV with all the dependencies and the correct environment set-up.
Default Credentials
MariaDB Root Password: 123
Unless changed in the docker or docker-compose file
First site's Administrator password: admin
Unless changed in the docker or docker-compose file
Deployment
Apps List
- Specify a list of apps in a JSON file called 'apps.json'
[
{
"url": "https://{{PAT}}@github.com/cronos-capital/rafnav_core.git",
"branch": "main"
},
{
"url": "https://{{PAT}}@github.com/cronos-capital/matter_management.git",
"branch": "main"
},
{
"url": "https://{{PAT}}@github.com/cronos-capital/raf_finance.git",
"branch": "main"
},
{
"url": "https://{{PAT}}@github.com/cronos-capital/filing.git",
"branch": "main"
},
{
"url": "https://{{PAT}}@github.com/cronos-capital/documentation.git",
"branch": "main"
}
]
Note: {{PAT}} replace with your personal access token from GitHub
- Generate a Base 64 shell variable of the apps list. This will be passed as a build argument for the docker image later
export APPS_JSON_BASE64=$(base64 -w 0 apps.json)
Image Build
Build the production version of the image using
docker build --build-arg=APPS_JSON_BASE64=$APPS_JSON_BASE64 -t rafnav/rafnav_bench:prod --file=images/production/Containerfile .
Publish Image
Publish the newly built docker image to docker hub using your PAT from Docker Hub
- Log in to Docker if not already
docker login -u [username]
- At the password prompt, paste your PAT
- Push the image using the following command:
docker push rafnav/rafnav_bench:prod
Common Operations
New Site
bench new-site [site_name] --mariadb-user-host-login-scope='%' --admin-password [pwd] --verbose
Installing RAFNav
bench --site [site_name] install-app rafnav_core matter_management filing documentation raf_finance
Resources
Production
- List of containers
- Single Compose Setup
- Environment Variables
- Single Server Example
- Setup Options
- Site Operations
- Backup and Push Cron Job
- Port Based Multi Tenancy
- Migrate from multi-image setup
- running on linux/mac