Services

Discover our Public Cloud offer

Shared Hosting for Everyone, imagined by developers, for developers.

Discovering the Public Cloud

You can register services: custom programs running in a headless mode (i.e. without any user interaction). Unlike a command launched by-hand trough SSH, those services will be restarted automatically by the system when the service stops.

Those services are declared in the administration panel’s Advanced > Services.

The ports' range 8300 to 8499, as well as the hostname services-[account].alwaysdata.net1 are reserved to those services.

Use services

  • It must runs in foreground, not fork and leave 2.
  • When needing to be reached from an external application, bind it to :: (IPv6) and a port from 8300 to 8499.
  • Log files for running services are located at $HOME/admin/logs/services/, containing services' outputs.
    • An extract of those logs is presented in the administration’s interface (Logs - 📄).
  • Current processes are accessible via the Advanced > Processes > Services menu.
  • The restart of a service sends the SIGHUP signal.
  • If a service fails repeatedly within a short period of time, it will be automatically disabled.

The optional Monitoring command allows you to specify a command used to check the service’s status. When this command returns an error code, the service is restarted. E.g. you can ping the service on the assigned port (i.e. 8300):

$ nc -z services-[account].alwaysdata.net 8300

There is no network filtering, anyone can connect to your services. Make sure your services have an authentication mechanism if necessary.

Public Cloud users

  • Services are executed on a distinct servers than SSH and HTTP servers.
  • Their resources use must remain fair.
  • The services will not be available on IPv4, only on IPv6.

Private Cloud users

  • Range port 8300 to 8499 are not accessible from the external network. You can expose them to Internet using a firewall rule.
  • You can use other ports ; for example the default port of the application.

Examples


  1. [account] to be replace by the account name. ↩︎

  2. See simple systemd service for use-cases. ↩︎