Skip to main content

Deployment

Codifier is a version control tool for Ceta platform's Seed-Data configuration code.

Table of Contents


Architecture

Codifier is a version control tool for Ceta platform's Seed-Data configuration code. Its deployment architecture is shown below:

Ceta Codifier Deployment Architecture


System Requirements

ItemRequirement
JDK17+
Maven3.8+
Docker20.10+ (for Docker deployment)
MemoryMinimum 2GB
DiskReserve 5GB+ (including Git clone cache)

Deployment Methods

# 1. Build
mvn -s settings.xml -B clean package -DskipTests
cp target/ceta-codifier-1.0.0.jar ./ceta-codifier.jar

# 2. Build image
docker build -t ceta-codifier:latest .

# 3. Run
docker run -d \
--name ceta-codifier \
-p 8090:8090 \
-v $(pwd)/data:/app/data \
-v $(pwd)/logs:/app/logs \
-e SERVER_PORT=8090 \
-e AUTH_USERNAME=admin \
-e AUTH_PASSWORD=your-password \
-e CRYPTO_MASTER_KEY=your-master-key \
-e JWT_KEY=your-jwt-key \
--restart unless-stopped \
ceta-codifier:latest

Method 2: Run JAR Directly

# Foreground
java -Xms2g -Xmx2g -jar ceta-codifier-1.0.0.jar

# Background (Linux)
nohup java -Xms2g -Xmx2g -jar ceta-codifier-1.0.0.jar > /dev/null 2>&1 &

# With environment variables
export SERVER_PORT=8090
export AUTH_USERNAME=admin
export AUTH_PASSWORD=your-password
java -jar ceta-codifier-1.0.0.jar

Environment Variables

Basic Configuration

VariableDescriptionDefault
SERVER_PORTServer port8090
AUTH_ENABLEDEnable authenticationtrue
AUTH_USERNAMEBuilt-in admin usernameadmin
AUTH_PASSWORDBuilt-in admin passwordadmin123
JWT_KEYJWT signing key!@#123Bot
JWT_EXPIRE_HOURSJWT expiration time (hours)24
CRYPTO_MASTER_KEYToken encryption master keys3Ed-DaTa-M@st3r-K3y!

Logging Configuration

VariableDescriptionDefault
LOG_LEVEL_ROOTRoot log levelINFO
LOG_LEVEL_APPApplication log levelDEBUG

File Upload Limits

VariableDescriptionDefault
MULTIPART_MAX_FILE_SIZEMaximum single file size100MB
MULTIPART_MAX_REQUEST_SIZEMaximum request size100MB

Project Configuration

After startup, visit http://host:8090/codifier/ → Project Management page to add/edit/delete projects online.

Project data is saved in data/projects.json, with tokens automatically encrypted for storage.


Data Persistence

The following directories need to be persisted (mounted as volumes in Docker deployment):

DirectoryDescription
data/Project configuration file projects.json + Git repository local cache
logs/Application logs + commit request logs
# Docker mount example
-v /opt/ceta-codifier/data:/app/data
-v /opt/ceta-codifier/logs:/app/logs