← Back to Skills Marketplace
kofna3369

Axiomata Web Deploy

by Kofna3369 · GitHub ↗ · v1.1.0 · MIT-0
cross-platform ⚠ suspicious
79
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install axiomata-web-deploy
Description
Deploy a public web presence (HTML + Docker + DNS + Domain) in ~15 minutes. Triggers on: 'deploy website', 'build and deploy', 'create web presence', 'launch...
README (SKILL.md)

Axiomata Web Deploy — 15-Minute Public Web Presence

What this skill does: Takes a directory with HTML files and deploys a live, publicly accessible website on a VPS using Docker + DNS + Domain — fully autonomous, no human intervention after launch.

Security first: No credentials are embedded in this skill. All secrets are read from local files or environment variables. Never ship tokens in skill code.

Transparency: This skill is for deploying websites only. It does not: exfiltrate data, access files outside the project directory, or perform any action beyond web deployment.

Required env vars: HOSTINGER_TOKEN, VPS_IP, DNS_ZONE_ID (or equivalents for your DNS provider)


Architecture Overview

+------------------------------------------------------+
|              15-MINUTE DEPLOYMENT PIPELINE           |
+------------------------------------------------------+
|  Phase 1 (2 min)  → Create HTML + Dockerfile        |
|  Phase 2 (2 min)  → Build Docker image              |
|  Phase 3 (3 min)  → Deploy to Docker                |
|  Phase 4 (3 min)  → Configure DNS + attach domain   |
|  Phase 5 (5 min)  → Verify everything works         |
+------------------------------------------------------+
  Total: ~15 min | DNS propagation: 5-48h

Prerequisites

  • VPS with Docker installed
  • Domain name registered (optional but recommended)
  • DNS provider API token (stored locally, NOT in skill)
  • Nginx or similar web server

Phase 1 — Project Setup (2 min)

mkdir -p /data/deployments/\x3Cproject-name>
cd /data/deployments/\x3Cproject-name>

index.html:

\x3C!DOCTYPE html>
\x3Chtml lang="en">
\x3Chead>
  \x3Cmeta charset="UTF-8">
  \x3Cmeta name="viewport" content="width=device-width, initial-scale=1.0">
  \x3Ctitle>My Site\x3C/title>
\x3C/head>
\x3Cbody>
  \x3Ch1>[ROCKET] Deployed with Axiomata Web Deploy\x3C/h1>
  \x3Cp>Live in 15 minutes.\x3C/p>
\x3C/body>
\x3C/html>

nginx.dockerfile:

FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Phase 2 — Build Docker (2 min)

docker build -f nginx.dockerfile -t \x3Cproject-name>:latest .

Phase 3 — Deploy Container (3 min)

# Stop existing container (ignore errors)
docker stop \x3Cproject-name> 2>/dev/null || true
docker rm \x3Cproject-name> 2>/dev/null || true

# Run as daemon
docker run -d \
  --name \x3Cproject-name> \
  -p 80:80 \
  --restart unless-stopped \
  \x3Cproject-name>:latest

# Verify
docker ps | grep \x3Cproject-name>
curl -s http://localhost/ | head -20

Port mapping:

  • Default: 80:80 (HTTP)
  • Multiple sites: different local ports (8080:80, 3000:80)
  • Open ports in VPS firewall

Phase 4 — DNS + Domain (3 min)

Get Your VPS Public IP

curl -s ifconfig.me

DNS Setup (Example: Hostinger API)

Credentials stored locally — never in skill.

Your credentials file (replace with your actual path):

# Example: ~/.credentials/host_vps.md
# Format:
# Token: YOUR_TOKEN_HERE
# IP: YOUR_VPS_IP

HOSTINGER_TOKEN=$(grep '^Token:' "$HOME/.credentials/host_vps.md" | awk '{print $2}')
VPS_IP=$(grep '^IP:' "$HOME/.credentials/host_vps.md" | awk '{print $2}')

Required environment variables (declare these before running):

Variable Description Example
HOSTINGER_TOKEN Hostinger API token hKsW...
VPS_IP Your VPS public IP 31.97.150.235
DNS_ZONE_ID Your DNS zone ID abc123

Create DNS records:

# Get your DNS zones
curl -s -X GET "https://api.hostinger.com/api/vps/v1/dns/zones" \
  -H "Authorization: Bearer $HOSTINGER_TOKEN"

# Create root A record
curl -s -X POST "https://api.hostinger.com/api/vps/v1/dns/zones/\x3Czone-id>/records" \
  -H "Authorization: Bearer $HOSTINGER_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"type\": \"A\", \"name\": \"@\", \"value\": \"$VPS_IP\", \"ttl\": 300}"

# Create www subdomain
curl -s -X POST "https://api.hostinger.com/api/vps/v1/dns/zones/\x3Czone-id>/records" \
  -H "Authorization: Bearer $HOSTINGER_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"type\": \"A\", \"name\": \"www\", \"value\": \"$VPS_IP\", \"ttl\": 300}"

For Cloudflare, Namecheap, Route53: Use their API with the same pattern — store credentials locally, reference them at runtime.


Phase 5 — Verify (5 min)

# 1. Container running?
docker ps | grep \x3Cproject-name>

# 2. Local response?
curl -s --max-time 5 http://localhost/ | grep -o "\x3Ctitle>.*\x3C/title>"

# 3. Container logs clean?
docker logs \x3Cproject-name> --tail 20

# 4. DNS resolved?
dig +short \x3Cdomain> @8.8.8.8

# 5. External access (with Host header)
curl -s --max-time 10 -H "Host: \x3Cdomain>" http://\x3CVPS_IP>/

Boilerplate Template

Copy from assets/web-boilerplate/:

  • index.html — Clean landing page
  • nginx.dockerfile — Nginx container

Customize and deploy.


Cleanup Old Deployments

# List all
docker ps -a --format "table {{.Names}}	{{.Status}}	{{.Ports}}"

# Remove
docker stop \x3Cold-project> && docker rm \x3Cold-project>
docker rmi \x3Cold-project>:latest
rm -rf /data/deployments/\x3Cold-project>

HTTPS (Optional, +5 min)

apt install certbot python3-certbot-nginx
certbot --nginx -d \x3Cdomain> -d www.\x3Cdomain>

Success Checklist

  • Container running: docker ps | grep \x3Cproject-name>
  • Local test: curl http://localhost/ returns HTML
  • DNS resolved: dig +short \x3Cdomain> shows VPS IP
  • Public access: External request returns content
  • (Optional) HTTPS: SSL certificate active

Security Rules (Critical)

[WARNING] Never embed credentials in skill code or documentation.

  • API tokens → read from local files only
  • Passwords → never in source or docs
  • Before publishing anywhere: grep all files for tokens, keys, secrets

The skill teaches the process, not carries the keys.


In Altum Per Axioma. Merlin

Usage Guidance
This skill can perform legitimate website deployment tasks, but there are transparency and scope problems you should address before using it: - Do not trust the registry metadata alone: SKILL.md requires HOSTINGER_TOKEN, VPS_IP, and DNS_ZONE_ID even though metadata lists none. Expect to provide API tokens — only supply them from secure locations. - Inspect SKILL.md for hidden characters (control/unicode) and remove them; the scan found potential prompt-injection artifacts. - Review the exact shell commands and file paths. The skill reads ~/.credentials/host_vps.md and writes under /data/deployments and may delete old deployments; run it in an isolated VM/container and avoid running as root on important hosts. - Confirm DNS provider API endpoints (Hostinger, Cloudflare, Route53) are the ones you intend to use, and limit the token scopes to DNS record edits only. - If you want to proceed, test on a disposable VPS and domain first. If you cannot audit or sanitize the SKILL.md yourself, consider declining installation.
Capability Assessment
Purpose & Capability
The stated purpose (deploy a website) aligns with the actions (build Docker image, run container, set DNS records). However the skill metadata claims no required env vars or credentials while the SKILL.md explicitly requires HOSTINGER_TOKEN, VPS_IP, DNS_ZONE_ID and reads a local credentials file. The metadata/instruction mismatch is a red flag for transparency or sloppy packaging.
Instruction Scope
The SKILL.md instructs the agent to read credentials from $HOME/.credentials/host_vps.md, create and remove directories under /data/deployments, run docker build/run/stop/rmi, curl external endpoints (ifconfig.me and provider APIs), and install certbot. These actions go beyond a simple locally-contained operation and contradict the skill's claim that it 'does not access files outside the project directory.'
Install Mechanism
This is an instruction-only skill with no install spec or code executed from a downloaded archive. That lowers installation-time risk because nothing is written to disk by the registry installer itself. Risks arise from the runtime shell commands the instructions tell an agent to run.
Credentials
The skill requests access to sensitive credentials (DNS/provider API token, VPS IP) which are appropriate for DNS and deployment tasks, but these are not declared in the registry metadata. The SKILL.md also suggests reading a local credentials file; asking for tokens is proportionate to the job, but the omission from metadata and the loose guidance on where tokens are stored (plain files) reduce transparency and increase risk of accidental exposure.
Persistence & Privilege
The skill is not marked always:true and is user-invocable (normal). It modifies filesystem state (creates /data/deployments, removes old deployments) and can install packages at runtime (certbot), which requires elevated privileges on the host. That behavior is plausible for a deploy tool but requires the user to run it in a controlled environment with appropriate permissions.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install axiomata-web-deploy
  3. After installation, invoke the skill by name or use /axiomata-web-deploy
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.0
v1.1.0: Cleaned unicode/box-drawing chars, added explicit env vars table, added transparency statement, fixed credential path ambiguity
v1.0.0
Initial release: 15-minute web deployment pipeline with Docker + DNS + Domain. Security-first design — no credentials embedded.
Metadata
Slug axiomata-web-deploy
Version 1.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Axiomata Web Deploy?

Deploy a public web presence (HTML + Docker + DNS + Domain) in ~15 minutes. Triggers on: 'deploy website', 'build and deploy', 'create web presence', 'launch... It is an AI Agent Skill for Claude Code / OpenClaw, with 79 downloads so far.

How do I install Axiomata Web Deploy?

Run "/install axiomata-web-deploy" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Axiomata Web Deploy free?

Yes, Axiomata Web Deploy is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Axiomata Web Deploy support?

Axiomata Web Deploy is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Axiomata Web Deploy?

It is built and maintained by Kofna3369 (@kofna3369); the current version is v1.1.0.

💬 Comments