Static sites
Not every project needs a runtime. A static site is just the project’s web server - no PHP and no
Node.js, Python, Go, Ruby, Java or .NET server behind it. In the wizard, choose Empty project and
pick Static site.
Envoryx puts a starter index.html in place so you see something right away, unless you clone a
repository.
The web server - Caddy, Apache or Nginx - serves the document root. That’s the project directory
itself or a folder in it, such as dist or public. Dotfiles like /.env or anything under /.git/
are never served, even if they sit in the document root.
Paths that don’t exist return a 404, as you’d expect. Single-page apps with client-side routing need
something else: a reload on /settings should still load the app. Turn on SPA fallback to
index.html on the Web server card, and unknown paths return index.html instead. That goes for
every unknown path, files included: a missing /logo.png then answers with index.html and status 200
instead of a 404, which is worth knowing when an image doesn’t show up.
Building with Node.js
Section titled “Building with Node.js”A static site can still use a Node.js container to build itself. Enable Node.js without the dev
server, set the document root to the build output - dist for Vite, out for a Next.js static
export - and run npm run build from the Actions section or the terminal. If you switch the dev server
on, it becomes the application instead; the Node.js page explains that side.
Uploading files
Section titled “Uploading files”A static site has no runtime container, but its files are still reachable over SFTP. Log in with
the project slug as the user, an API token or your SSH key, port 2222, and you start in
/var/www/html, the project directory; scp works the same way. The project’s IDE section has
the values ready to copy, so PhpStorm or WebStorm can use it as a deployment target. What you don’t
get is a shell: ssh and rsync need a container to run in, and the login tells you so instead.
Git or the project directory on the Docker host are the other ways in. See
Terminal and SSH.
Reaching it
Section titled “Reaching it”The site answers on its direct port, http://<host>:<port>. Once the proxy is set up, it’s also at
https://<project>.<base> - see Domains and HTTPS.