smdctl-deploy

Deploy user-level systemd services from YAML configs with smdctl.

Updated Jan 8, 2026
One-click install
npx skills add https://github.com/OlegHQ/claude-config --skill smdctl-deploy
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: smdctl-deploy
Source: https://github.com/OlegHQ/claude-config/tree/main/dev-stuff-plugin/skills/smdctl-deploy
Command: npx skills add https://github.com/OlegHQ/claude-config --skill smdctl-deploy

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill automates deploying user-level systemd services for applications, removing the need for manual service setup and sudo access in development and lightweight production environments.

Core Features & Use Cases

  • YAML-driven deployment: Define services with name, command, workdir, environment, and restart policies in a single file.
  • Task scheduling: Create and manage systemd timers for periodic maintenance tasks from the same config.
  • Workflow automation: Deploy, start, stop, and monitor services across user sessions with simple commands.

Quick Start

Create a smdctl.yml in your project with name and command, then run smdctl run -f smdctl.yml to deploy the service.

Frequently Asked Questions about smdctl-deploy

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy a persistent background worker without sudo access on Linux?

Deploying persistent background workers without sudo is done by configuring user-level systemd services. This skill automates generating and managing these services from a YAML config, removing the need for manual root-level setup.

Can I schedule periodic tasks using systemd timers from a YAML file?

Yes, you can schedule periodic tasks using systemd timers defined directly within your YAML configuration. The deployment process reads these timer definitions and creates the corresponding systemd user timers for automated maintenance.

How do I create a systemd user service for a Python or Node app?

To create a systemd user service, define your Python or Node app's name, command, and working directory in a YAML file. Running the deployment command generates and starts the persistent user-level service automatically.

Do I need root privileges to run persistent applications with systemd?

No, root privileges are not required to run persistent applications with systemd. This skill specifically deploys user-level systemd services, allowing you to run and manage background tasks within your own user session without sudo.

What is the best way to manage environment variables and restart policies for systemd services?

The best way to manage environment variables and restart policies is by defining them in a single YAML configuration file. This approach centralizes your service settings and automatically applies them to the generated systemd user services.

Why use YAML configuration for deploying systemd services instead of manual unit files?

Using YAML configuration for systemd services automates deployment and removes the need to manually write and manage unit files. It streamlines defining service names, commands, environments, and timers in one centralized file before generation.