BC Fossil Management Office implementation of Arches
- Docker Desktop
- Create a directory called
bcfms
- Open a terminal and navigate to the
bcfms
directory - Run the following to clone the repositories required for this project:
git clone https://github.com/bcgov/arches-dependency-containers
git clone https://github.com/bcgov/arches
git clone https://github.com/bcgov/arches_common
git clone https://github.com/bcgov/bcfms
git clone https://github.com/archesproject/arches-component-lab
- You should now have the following directory structure:
.
└── 📁 bcfms/
├── 📁 arches-dependency-containers/
├── 📁 arches/
├── 📁 arches_common/
└── 📁 bcfms/
└── 📁 arches-component-lab/
- Open or navigate to the
bcfms
directory in the terminal - Run the following command:
cd arches && git checkout stable/7.6.4.1_bcgov
- We need to load the base dependencies needed for Arches (i.e., Postgres, Elasticsearch, Redis, etc).
- Open or navigate to the
bcfms
directory in the terminal - Run the following command to setup the project's dependencies:
cd arches-dependency-containers/arches-7-5-2 && docker compose up -d
- An .env file
- Open or navigate to the
bcfms
directory in the terminal - Run the following command:
cd bcfms && docker compose up -d
- Let the
bcfms7-6
container fully load (i.e., watch the "Logs" tab). There will be a warning about missing environment variables.- You will see:
django.core.exceptions.ImproperlyConfigured: Set the BCGOV_PROXY_PREFIX environment variable
- This can take some time.
- You will see:
- You need to create or move the .env file to
bcfms/bcfms/.env
- Restart the
bcfms7-6
container in Docker Desktop
- Create
test_user_list.py
inbcfms/bcfms/bcfms/management/data/test_user_list.py
- Put the following function in the
test_user_list.py
file if you do not have an IDIR username/password:
def get_user_list():
return [
{
"name": "testuser123",
"email": "test@email.com",
"password": "Test12345!",
"is_superuser": True,
"is_staff": True,
"first_name": "Test",
"last_name": "User",
"groups": [
"Resource Editor",
"Resource Reviewer",
"Archaeology Branch",
"Resource Exporter"
]
}
]
- Put the following function in the
test_user_list.py
file if you do have an IDIR username/password:
def get_user_list():
return [
{
"name": "<idir username>@idir",
"email": "<email>",
"password": "Test12345!",
"is_superuser": True,
"is_staff": True,
"first_name": "<first name>",
"last_name": "<last name>",
"groups": [
"Resource Editor",
"Resource Reviewer",
"Archaeology Branch",
"Resource Exporter",
],
},
]
- The password is a dummy password so it can be left as is.
- OIDC is used so when authenticating you will use your IDIR username and password.
- The
@idir
suffix is necessary - The
<idir username>
must be in lowercase
- Start and open the
bcfms7-6
container in Docker Desktop - Go to the "Exec" tab and run the following:
python3.11 manage.py bc_test_users --refresh REFRESH
-
Open the "Inspect" tab in the container
-
Ctrl + F
forNetworks
and look forIPAddress
-
Copy the IP Address and open the
bcfms/bcfms/.env
file -
Add the IP Address to the
AUTH_BYPASS_HOSTS
variable:AUTH_BYPASS_HOSTS = ... ... <IPAddress>
-
Open the
bcfms7-6
container in Docker Desktop -
Go to the "Exec" tab and run the following:
npm run build_development
python3.11 manage.py setup_db
You should now be able to access BCFMS at http://localhost:81/bc-fossil-management
- After logging into BCFMS, the map will initially be blank.
- You must navigate to the "System Settings" from the menu on the left-hand side, and enter your
Mapbox
token there.