This vignette covers CS9 installation options and infrastructure requirements.
CS9 can be used in two configurations.
Install CS9 from CRAN for documentation, examples, and development tools:
What works:
cs9::check_environment_setup())What does not work:
For complete surveillance functionality, you need a database backend and proper environment configuration. For production deployments, Docker is the recommended approach.
CS9 requires a PostgreSQL database backend for full functionality.
Once PostgreSQL is running, create your surveillance database:
-- Connect as postgres user
CREATE DATABASE cs9_surveillance;
CREATE USER cs9_user WITH PASSWORD 'yourStrongPassword100';
GRANT ALL PRIVILEGES ON DATABASE cs9_surveillance TO cs9_user;
-- Create schemas for different access levels
\c cs9_surveillance
CREATE SCHEMA config;
CREATE SCHEMA anon;
GRANT ALL ON SCHEMA config TO cs9_user;
GRANT ALL ON SCHEMA anon TO cs9_user;CS9 reads its database connection settings from environment
variables, which are typically set in your .Renviron
file.
Find or create your .Renviron file:
Add CS9 configuration variables:
# CS9 Core Configuration
CS9_AUTO=0
CS9_PATH=
# Database Connection Settings
CS9_DBCONFIG_ACCESS=config/anon
CS9_DBCONFIG_DRIVER=PostgreSQL Unicode
CS9_DBCONFIG_PORT=5432
CS9_DBCONFIG_SERVER=localhost
CS9_DBCONFIG_USER=cs9_user
CS9_DBCONFIG_PASSWORD=yourStrongPassword100
CS9_DBCONFIG_SSLMODE=prefer
# Database Schema Configuration
CS9_DBCONFIG_SCHEMA_CONFIG=config
CS9_DBCONFIG_DB_CONFIG=cs9_surveillance
CS9_DBCONFIG_SCHEMA_ANON=anon
CS9_DBCONFIG_DB_ANON=cs9_surveillance.Renviron.| Variable | Example Value | Description |
|---|---|---|
CS9_AUTO |
0 |
Set to 0 for interactive mode, 1 for automated mode |
CS9_PATH |
`| Base path for cs9::path function (usually empty) | |CS9_DBCONFIG_ACCESS|config/anon| Database access levels (slash-separated) | |CS9_DBCONFIG_DRIVER|PostgreSQL
Unicode| Database driver name | |CS9_DBCONFIG_SERVER|localhost| Database server hostname or IP | |CS9_DBCONFIG_PORT|5432| Database server port | |CS9_DBCONFIG_USER|cs9_user| Database username | |CS9_DBCONFIG_PASSWORD|yourStrongPassword100| Database password | |CS9_DBCONFIG_SSLMODE|prefer| SSL connection preference | |CS9_DBCONFIG_SCHEMA_CONFIG|config| Schema for CS9 configuration tables | |CS9_DBCONFIG_DB_CONFIG|cs9_surveillance| Database for configuration | |CS9_DBCONFIG_SCHEMA_ANON|anon| Schema for anonymous data tables | |CS9_DBCONFIG_DB_ANON|cs9_surveillance` |
Database for surveillance data |
When the database is not configured, CS9 loads with limited functionality and prints messages like:
Environment setup failed: Missing required environment variables: CS9_DBCONFIG_ACCESS, CS9_DBCONFIG_DRIVER, CS9_DBCONFIG_PORT, CS9_DBCONFIG_SERVER
CS9 database configuration not available. Package loaded with limited functionality.
Use cs9::check_environment_setup() to diagnose configuration issues.
Run cs9::check_environment_setup() to see which
configuration items are missing.
An example docker-compose file is available here.
To get started quickly, clone the cs9example repository, which provides a complete template for a CS9 surveillance system.
If you installed CS9 from CRAN and want to enable full surveillance functionality:
Check your current status:
Install PostgreSQL, create the surveillance database, and note the connection parameters (host, port, username, password).
Add the CS9_DBCONFIG_* variables to your
.Renviron file, restart R, and verify with
cs9::check_environment_setup().
Test that the package now loads fully:
“Missing required environment variables”: Check that
all CS9_DBCONFIG_* variables are in your
.Renviron file and restart R.
“Could not connect to database”: - Verify PostgreSQL
is running: sudo systemctl status postgresql (Linux) or
brew services list | grep postgres (macOS) - Confirm that
the credentials in .Renviron match the database user you
created - Test manually:
docker exec -it cs9-postgres psql -U cs9_user -d cs9_surveillance
“Package loaded with limited functionality”: Expected when no database is configured. Follow the database setup steps above.
Permission denied errors: Grant the required privileges:
vignette("cs9") — architecture and core conceptsvignette("creating-a-task") — step-by-step task
tutorialvignette("file-layout") — package structure
guidance