Files
MHSanaei 30796dc2ce chore(deploy): drop the AWS golden-image build stack
Remove the release-driven Packer AMI/qcow2 pipeline and everything that existed only to feed it: the image.yml workflow, deploy/packer, deploy/lightsail, deploy/firstboot, the AWS Marketplace checklist, and the first-boot smoke test/job.

Keep the cloud-agnostic unattended-install path (cloud-init + install.sh non-interactive) and the Hetzner notes, which never depended on the workflow. Hetzner's snapshot path is dropped too since it relied on firstboot to avoid admin/admin on clones; cloud-init regenerates per-instance credentials on its own.

Update deploy/README, the cloud-init and Hetzner docs, the root README plus its six translations, and .gitattributes to match.
2026-06-26 00:35:34 +02:00
..

3x-ui on Hetzner Cloud

Hetzner Cloud does not have a third-party image marketplace the way AWS does. Ship 3x-ui via cloud-init: each instance installs non-interactively and generates unique per-instance credentials (no admin/admin, no shared secret).

cloud-init (no image build)

Use the generic user-data from ../../cloud-init/. It installs 3x-ui non-interactively and generates unique per-instance credentials.

Web console: Create Server → Cloud config → paste deploy/cloud-init/cloud-init.yaml.

CLI:

hcloud server create \
  --name xui-1 \
  --type cx22 \
  --image ubuntu-24.04 \
  --user-data-from-file deploy/cloud-init/cloud-init.yaml

After boot, fetch the generated credentials:

ssh root@<server-ip> 'cat /etc/x-ui/install-result.env'

"App"-style listing

Hetzner's curated apps live in the community repo github.com/hetznercloud/apps: each app is essentially a documented cloud-init config plus metadata. To propose 3x-ui as a Hetzner app, follow that repo's contribution pattern and base the app's cloud-config on deploy/cloud-init/cloud-init.yaml.