Skip to content

Instantly share code, notes, and snippets.

View janaka's full-sized avatar

Janaka Abeywardhana janaka

View GitHub Profile
@janaka
janaka / openclaw-compose.yaml
Last active May 24, 2026 02:39
OpenClaw self-hosting compose file — deploy in 5 commands with EasyRunner (https://github.com/janaka/easyrunner). Full guide: https://github.com/janaka/easyrunner/blob/main/docs/user-guides/install-openclaw.md
# OpenClaw self-hosting compose file
#
# Deploy this file to a VPS in 5 commands using EasyRunner — a single-server,
# self-hosting platform for indie operators and small teams.
#
# Full install guide: https://github.com/janaka/easyrunner/blob/main/docs/user-guides/install-openclaw.md
# EasyRunner: https://github.com/janaka/easyrunner
#
# This compose file is consumed by EasyRunner's Flow B deploy path: ER pulls
# the image, generates a systemd Quadlet unit, starts the container, and
# These rules generate rules to keep network interface names unchanged
# across reboots and write them to /etc/udev/rules.d/70-persistent-net.rules.
# variables used to communicate:
# MATCHADDR MAC address used for the match
# MATCHID bus_id used for the match
# MATCHDRV driver name used for the match
# MATCHIFTYPE interface type match
# COMMENT comment to add to the generated rule
# INTERFACE_NAME requested name supplied by external tool
{
"name": "windows_base",
"chef_type": "role",
"json_class": "Chef::Role",
"default_attributes": {
},
"description": "The most basic role used to build a new EC2 AMI. Gets chef-client configured and running as a service etc. Chef-client is installed through the base CloudFormation template",
"run_list": [
{
"Description": "Spins up a single Windows 2012 64bit instance, install Chef Client, and registers with hosted Chef.",
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters" : {
"nodeName" : {"Type" : "String",
"Description" : "Name to be given to this node (server) in Chef and AWS 'Name' tag"
},
"availabilityZone" : {"Type" : "String",
"Description" : "Availability zone to create instance in",
"Default" : "eu-west-1a"