# FeatherQuilld

> FeatherQuilld is the .NET daemon that runs WebSpaces for FeatherPanel web hosting, with a reverse proxy, SFTP and FTP, backups and optional mail.

Source: https://featherpanel.com/docs/quilld/

FeatherQuilld does for websites what [FeatherWings](https://featherpanel.com/docs/wings) does for game servers. It runs on a web node, takes
orders from the panel over an HTTP API, and runs each WebSpace (one hosted site) in its own Docker container.

## What it manages

- WebSpaces: create, start and stop, reinstall, logs, a websocket console, resource usage and transfers to another node.
- A reverse proxy in front of the WebSpaces: Caddy (default), nginx or Traefik, set by `system.proxy.provider`. It
  routes each domain to the container's loopback port (`20000` to `29999`) and handles Let's Encrypt or a custom
  certificate per WebSpace.
- File access over SFTP (port `2222`) and FTP (port `21`, passive `50000` to `50100`), plus the panel's file manager.
- Backups, restores and imports per WebSpace, schedules, a per-WebSpace Redis and a malware scan.
- DNS and mail endpoints. Mail runs through docker-mailserver (default) or mailcow. See [Mail](https://featherpanel.com/docs/quilld/mail).

It is a .NET application published as one binary, `featherquilld`, with a `quilld` alias and the `fqctl` tool. It runs as
root because it manages Docker and bind mounts.

## Where things live

| Path | Contents |
|------|----------|
| `/etc/featherquilld/config.yml` | Configuration |
| `/var/lib/featherquilld/volumes` | WebSpace files |
| `/var/lib/featherquilld/backups` | Backups |
| `/var/lib/featherquilld/plugins` | Quilld plugins |
| `/var/log/featherquilld` | Logs |

## Next steps

- [Install FeatherQuilld](https://featherpanel.com/docs/quilld/installation)
- [Configuration reference](https://featherpanel.com/docs/quilld/config-reference) and [HTTP API](https://featherpanel.com/docs/quilld/api)
- [Web hosting in the admin area](https://featherpanel.com/docs/admin/web-hosting)
