/cdk-valheim

A high level CDK construct of Valheim dedicated server.

Primary LanguageTypeScriptApache License 2.0Apache-2.0

GitHub Workflow Status GitHub license npm PyPI - Downloads

cdk-valheim

A high level CDK construct of Valheim dedicated server.

Features

  • Fargate cluster to run a Valheim server, with EFS for persistence (schedulable)
  • Hourly AWS Backup with 3 days retention (customizable)
  • lloesche/valheim-server as the default container image (replaceable)

See integration test for an example.

API Doc

See API.md

References

Examples

The construct is published to both npm and PyPI.

TypeScript

new ValheimWorld(stack, 'ValheimWorld', {
  cpu: 2048,
  memoryLimitMiB: 4096,
  schedules: [{
    start: { hour: '12', weekDay: '1-5' },
    stop: { hour: '1', weekDay: '1-5' },
  }],
  environment: {
    SERVER_NAME: 'CDK Valheim',
    WORLD_NAME: 'Amazon',
    SERVER_PASS: 'fargate',
    BACKUPS: 'false',
  },
});

Python

ValheimWorld(
    self, 
    'ValheimWorld',   
    cpu=2048,
    memory_limit_mib=4096,
    schedules=[ValheimWorldScalingSchedule(
        start=CronOptions(hour='12', week_day='1-5'),
        stop=CronOptions(hour='1', week_day='1-5'),
    )],
    environment={
        'SERVER_NAME': 'CDK Valheim',
        'WORLD_NAME': 'Amazon',
        'SERVER_PASS': 'fargate',
        'BACKUPS': 'false',
    })

Testing

  • Unit test and snapshot test
npx projen test
  • Integration test
npx cdk -a "npx ts-node src/integ.valheim.ts" diff
npx cdk -a "npx ts-node src/integ.valheim.ts" deploy