6.6 KiB
Getting Started
!! You need to be connected to WSL before proceeding
Other Pre-requisites
To get started, you must have set up an IT Workspace environment. After that, clone this repo:
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 the 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
You have two options to start the docker container for development:
- Opening the folder in VS as a docker container.
- Manually starting the container in the terminal.
Reopen the folder in the dev container
- Open VsCode in the RAFNAV-Docker folder.
- 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...
Manually start the container
- Run the following script
docker-compose -f .devcontainer/docker-compose.yml up -d && docker exec -e \"TERM=xterm-256color\" -w /workspace/development -it devcontainer-frappe-1 bash
Easier container start command
Run the following script to install a command to start the default RAFNAV container easily.
echo "alias run-rafnav='cd ~/Documents/RAFNAV-Docker && docker-compose -f .devcontainer/docker-compose.yml up -d && docker exec -e \"TERM=xterm-256color\" -w /workspace/development -it devcontainer-frappe-1 bash'" >> ~/.bash_aliases
Now you can run run-rafnav anywhere in your WSL terminal to start the development container.
Note: Your terminal is now open in the development workspace. However, the VsCode window is not.
Starting Development
GitHub Login (SSH)
Make sure you're setting it up for WSL or Linux
RAFNAV Installation
‼️ If you're installing on Linux, run the following command first:
chown frappe:frappe /workspace/development/
Default Install
frap-install -v
ERPNext with add-on apps
frap-install -j apps-erpnext.json -v
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
cd rafnav_bench
Run the following script to add an alias for navigating to the RAFNAV bench.
echo "alias go-rafnav_bench='cd ~/Documents/RAFNAV-Docker/development/rafnav_bench'" >> ~/.bash_aliases
Now you can use go-rafnav_bench anywhere in linux to navigate to RAFNAV's bench directory.
- Now you are able to start development on RAFNAV with all the dependencies and the correct environment set-up.
Documentation
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 /path/to/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:[version] --file=images/production/Containerfile .
Remeber to replace [version] with the correct version number
Publish Image
Publish the newly built docker image to docker hub using your PAT from Docker Hub
- Log in to Docker
docker login -u [username]
- At the password prompt, paste your PAT
- Push the image using the following command:
docker push rafnav/rafnav_bench:[version]
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