29 min read

Install Saltbox on Ubuntu and Access Apps with Localtonet

Set up Saltbox on supported Ubuntu Server releases, verify a media app locally, then publish its web interface through a Localtonet HTTP tunnel.

Ubuntu Server running a Saltbox application and connecting it to a remote browser through a Localtonet HTTP tunnel.
Saltbox hosts the application locally, while Localtonet provides the public HTTP path.
Tutorials · Saltbox on Ubuntu Server · Localtonet · 2026

Build the media stack first, verify one application locally, then publish only the interface you intend to use

Saltbox uses Ansible to deploy and manage a Docker-containerized media server stack on supported Ubuntu Server systems. This guide explains the supported operating system requirements, the command-line management model, configuration validation, local application verification, and the information you must collect before enabling remote access. After the selected application works locally, we show how to point a Localtonet HTTP tunnel at its verified address and port without configuring inbound router port forwarding, a public IP address, or a VPN. Because Saltbox does not assign one universal web port and has no dashboard of its own, the workflow deliberately avoids guessing an application endpoint.

🔒 Expose only a selected authenticated application 🌐 Public HTTPS access through an HTTP tunnel ⚡ Ansible-managed, Docker-containerized deployment

What Saltbox installs and how the workflow fits together

Saltbox is an Ansible-based solution for rapidly deploying a Docker-containerized cloud media server. Its primary use cases include acquiring media automatically, playing that media from different devices, and, to a lesser extent, storing media in cloud-backed locations. The project includes or references applications such as Plex, Emby, Sonarr, Radarr, Lidarr, Rclone, SABnzbd, Tautulli, NZBHydra2, Jackett, Overseerr, Autoscan, Cloudplow, Organizr, Portainer, Traktarr, and other optional components.

The most important architectural detail is that Saltbox itself does not have a dashboard or graphical user interface. Saltbox-specific setup and management happen in text editors and on the command line. The applications deployed by Saltbox may provide their own web interfaces, but those interfaces are separate services with separate configurations, ports, authentication settings, and operational purposes.

This distinction determines how remote access should be designed. There is no single “Saltbox web port” that we can safely publish. Instead, you must choose one deployed application, confirm that it is running, identify the actual local IP address and port through the current Saltbox or application configuration, and test that endpoint from the machine that will run our client. Only then should you create a Localtonet HTTP tunnel for that target.

⚙️ Ansible-based deployment Saltbox uses Ansible to apply its deployment and configuration roles. Its CLI exposes installation, update, validation, diagnostic, logging, and Docker-management functions.
📦 Containerized applications The media applications are deployed as Docker containers. Each selected application remains an independent service rather than becoming part of a Saltbox dashboard.
🖥️ Command-line administration Saltbox-specific setup is performed through configuration files and command-line tools. Do not expect a graphical installer or central Saltbox web interface.
🌐 Application-specific web access Plex, Emby, Sonarr, Radarr, Overseerr, Organizr, Portainer, and similar applications can have web interfaces, but their exact endpoints must be verified from the deployed configuration.

A sensible installation and access sequence therefore has two distinct phases. First, install and operate Saltbox according to its supported Ubuntu and Ansible workflow. Second, after one application has passed a local test, use Localtonet to expose that application. Keeping the phases separate prevents tunnel troubleshooting from being confused with container, application, or Saltbox configuration problems.

Saltbox is not the endpoint

The Localtonet target must be a specific application interface that is reachable from the device running our client. Do not enter a guessed “Saltbox port.” Saltbox does not document one universal dashboard, URL, port, or protocol because it has no GUI of its own.

Check the supported platform and prerequisites

Start with the operating system boundary published by the Saltbox project. Fresh installations are supported on x64 machines running Ubuntu Server 24.04 LTS or Ubuntu Server 26.04 LTS. Ubuntu Server 22.04 LTS remains supported for existing installations, but it is not listed as a supported target for a new installation.

Saltbox does not support ARM processors, Ubuntu Desktop installations, non-LTS Ubuntu releases, or Linux distributions other than Ubuntu. These restrictions are not cosmetic recommendations. An unsupported processor architecture, distribution, or Ubuntu edition can change package availability, service behavior, filesystem conventions, and automation assumptions. Resolve platform compatibility before diagnosing individual Ansible or Docker failures.

Platform Fresh installation status What to do
x64 Ubuntu Server 24.04 LTS Supported Suitable for a fresh Saltbox installation.
x64 Ubuntu Server 26.04 LTS Supported Suitable for a fresh Saltbox installation.
Ubuntu Server 22.04 LTS Existing installations only Do not treat continued support for an existing system as approval for a new deployment.
Ubuntu Desktop or non-LTS Ubuntu Unsupported Reinstall with a supported Ubuntu Server LTS release before proceeding.
Other Linux distributions Unsupported Use a supported Ubuntu Server release rather than adapting commands from another distribution.
ARM hardware Unsupported Use an x64 machine for the Saltbox host.

Prepare a clean server

The Saltbox project specifies fresh installations for its supported Ubuntu Server releases. Before beginning, confirm that the machine is an x64 system, that the installed edition is Ubuntu Server rather than Ubuntu Desktop, and that the release is an eligible LTS version. Also make sure you have administrative access to the host and a reliable way to recover the system if configuration changes fail.

Plan storage before deploying applications. Media automation systems can involve application configuration, downloads, libraries, caches, and optional remote storage integrations. The extracted official material identifies Rclone and cloud-oriented workflows, but it does not establish one mandatory disk layout, capacity requirement, mount path, or cloud provider configuration. Those choices must come from your selected Saltbox configuration and the requirements of the applications you intend to install.

Decide which application you actually need

Avoid installing components only because they appear in the featured application list. Select applications according to a defined purpose. A playback server such as Plex or Emby serves a different role from an automation application such as Sonarr or Radarr. Overseerr is different again, while Portainer provides container-oriented administration. Every additional web interface expands the number of services that must be configured, updated, authenticated, and monitored.

For this guide, choose one application whose web interface you eventually want to reach remotely. Record its name, but do not choose a port from a blog post, memory, or another deployment. The actual endpoint will be collected after Saltbox installs the selected role and the resulting container is running.

Prepare Localtonet only after defining the local target

The Localtonet client must run on a device that can reach the chosen application. Running it directly on the Saltbox host is one possible topology. Running it on another machine in the same network can also work if that machine can connect to the application’s verified IP address and port. The target address is interpreted from the Localtonet client device, so an address that works on your laptop does not automatically work from a different server.

Do not continue on an unsupported Saltbox platform

ARM, Ubuntu Desktop, non-LTS Ubuntu, and non-Ubuntu distributions are outside the documented Saltbox support boundary. A tunnel cannot correct an unsupported operating system, failed Ansible run, stopped container, or invalid application configuration.

Install Saltbox without inventing bootstrap commands

Five-step Saltbox installation flow using official documentation and local validation.
Use the current Saltbox documentation as the source for bootstrap and installation steps.

Saltbox’s documented installation model is Ansible-based, and its official documentation is the authoritative location for the current bootstrap procedure. The approved project evidence available for this article confirms the supported platforms and the installed sb command interface, but it does not include the bootstrap shell commands, repository path, prerequisite package commands, installer prompts, or initial configuration filenames.

We will not fabricate those details. Installation bootstrap commands can change, and using an outdated repository path or installer invocation can damage a new server or leave it in a partially configured state. On a fresh, supported Ubuntu Server installation, open the current Saltbox documentation, follow its current Install workflow exactly, and return to this guide once the sb command is present.

Evidence boundary for the installation bootstrap

The official material supplied for this draft does not reproduce Saltbox’s current installer commands. This guide can accurately document compatibility, the verified CLI surface, validation, application selection, endpoint discovery, local testing, and Localtonet integration, but it cannot safely provide a copy-and-paste bootstrap command that is absent from that material.

Confirm that the Saltbox CLI is available

After completing the current official installation workflow, ask the installed CLI to display its help output:

sb --help

A working help command should list the supported top-level commands. The documented CLI includes commands for installing selected tags, listing available tags, editing configuration, validating configuration, updating Saltbox, displaying the installed version, running diagnostics, viewing managed systemd service logs, and managing Docker containers through Saltbox.

If the shell reports that sb cannot be found, do not proceed to application installation or remote access. Recheck the official bootstrap workflow, the current shell session, and any installation error output. Do not replace the missing command by downloading an unverified script or creating your own alias.

Understand the documented command surface

Command Documented purpose Safe use in this workflow
sb --help Displays Saltbox CLI help Use it first to confirm that the CLI is installed and to inspect current syntax.
sb version Prints the Saltbox CLI version Record the version when troubleshooting or documenting a deployment.
sb list Lists available Saltbox, Sandbox, or Saltbox-mod tags Use current output to find valid installable tags rather than guessing a tag name.
sb edit Edits Saltbox configuration files Inspect its help before choosing a configuration target or subcommand.
sb validate-config Validates Saltbox configuration files Run it after configuration changes and before an installation run.
sb install Runs Ansible playbooks with specified tags Use only with valid tags and flags shown by the installed CLI and current documentation.
sb update Updates Saltbox and Sandbox Review the current command help and backup implications before updating a working host.
sb diag Runs Saltbox diagnostics Collect diagnostic information when installation or managed-service behavior is unclear.
sb logs Displays logs of managed systemd services Use it when the problem concerns a service managed at the systemd level.
sb role docker Manages Docker containers managed by Saltbox Inspect its command help before issuing a container-management action.

The documented usage syntax also shows optional queries, tags, commands, and flags. Bracketed words in help syntax are placeholders, not literal text to paste. For example, the published form sb install [tags] [--flags] means that valid tags and supported flags may follow the command. It does not mean that the square brackets should be entered literally.

List valid tags before installing an application

Saltbox installs components through Ansible tags. Because the available tag set can depend on the current Saltbox, Sandbox, or Saltbox-mod configuration, use the CLI’s list function and help output to discover valid choices:

sb list
sb install --help

Select the tag documented for the application you intend to deploy. Do not infer a tag solely from a marketing name, container image name, or a command copied from an unrelated release. Once you have confirmed the valid tag and completed the application’s required configuration, invoke sb install using the syntax shown by your installed CLI.

This guide intentionally does not provide a fabricated command such as sb install APP with an assumed application tag. The official CLI confirms that installation accepts tags, but the supplied evidence does not map every featured application name to an exact tag or establish which flags are required.

Configure and validate the selected Saltbox application

Saltbox configuration is performed in text editors and through command-line tools. There is no Saltbox setup wizard or dashboard to complete this phase. The exact values depend on the application, storage plan, account integrations, and the current Saltbox schema.

Use the documented configuration editor interface to inspect available targets:

sb edit --help

Follow the current Saltbox documentation for the selected application and supply only values you understand. Keep passwords, API keys, authentication tokens, and private service URLs out of shell history, screenshots, issue reports, and public configuration repositories. If an application requires credentials, use the storage mechanism specified by its current Saltbox documentation rather than creating an undocumented environment variable or file.

Validate before applying the Ansible role

Run the documented validator after editing Saltbox configuration:

sb validate-config

Treat validation failures as configuration failures. Read the reported file, field, or schema problem, correct it, and validate again. Repeatedly running an installation playbook does not make an invalid value become valid, and adding Localtonet at this stage would only introduce another layer to diagnose.

After validation succeeds, use the current CLI help and the application’s documented tag to run the required installation. Ansible output matters. Review failed tasks rather than relying only on the final lines, and preserve enough context to identify which role and task failed. If the run does not complete successfully, resolve that condition before expecting a container or web interface to exist.

Keep the responsibilities separate

🧰 Saltbox configuration Defines and deploys the selected roles through the project’s text-based configuration and Ansible workflow.
🎞️ Application configuration Controls the media application’s own libraries, accounts, authentication, integrations, and interface behavior.
🐳 Container operation Determines whether the deployed application process is running and whether its service is published on a reachable local endpoint.
🔗 Localtonet access Maps a verified local application address and port to a public endpoint while the selected Localtonet client and tunnel are running.

This separation is useful during maintenance. If an application works locally but not through its public URL, investigate the client, tunnel, and target mapping. If it does not work locally, investigate Saltbox, Docker, and the application before changing the tunnel.

Verify one media application locally

Ubuntu service status and a media application loading from a local address.
Confirm that the selected application is active and reachable locally before creating a tunnel.

Local verification is the handoff point between the Saltbox installation and Localtonet integration. The goal is to prove that the selected application responds through a specific address and port from the exact device that will run our client.

Confirm the Saltbox environment

Record the installed Saltbox version and validate the configuration:

sb version
sb validate-config

These checks do not prove that an individual web application is healthy, but they establish useful deployment context. If you later request support, the version and validation result help distinguish configuration issues from runtime issues.

Confirm that the selected container is running

Saltbox documents a Docker role command for managing containers. Inspect its current help before performing an action:

sb role docker --help

You can also inspect the Docker environment with standard Docker tooling when it is available to your administrative account:

docker ps

Locate the selected application in the output and examine its current status and published port information. Do not assume that a container name or port from another Saltbox installation applies to yours. If the application is absent, stopped, restarting, or has no reachable interface, fix that state before continuing.

Identify the actual local endpoint

Obtain the application’s listening address and port from the current Saltbox configuration, the application-specific documentation, or the runtime container information. Record both parts. A port number without an address is not a complete target, and an address without a port is not enough to configure an HTTP tunnel.

Address selection matters. If our client runs on the Saltbox host, a loopback endpoint may be reachable from that host. If our client runs on another device, a service listening only on the Saltbox host’s loopback interface will not be reachable over the LAN. In that topology, use an application endpoint that is intentionally available to the client device and permitted by your local network policy.

Do not copy a guessed default port

The official Saltbox overview names many applications but does not establish a universal local URL, port, or protocol for them. Verify the deployed endpoint. A guessed value can target the wrong service, expose an administrative interface unintentionally, or produce a tunnel that is online but cannot reach its destination.

Test from the Localtonet client device

Open the verified URL in a browser on the device that will run our client. For a command-line header check, replace the placeholder with the real endpoint you just verified:

curl -I http://127.0.0.1:<verified-port>

The example uses loopback only as a testing pattern for a client running on the same host. Do not paste the placeholder literally, and do not use loopback when our client runs on a different device. In that case, test the Saltbox host’s reachable local address and the verified application port from the client device.

A successful result can be a normal page, login screen, or expected HTTP response. A redirect may also be intentional, depending on the application. What matters is that the endpoint responds consistently and that you understand which service answered. Complete the application’s initial setup and enable its own authentication before making it public.

Create a simple verification record

Before opening the Localtonet dashboard, write down the following deployment-specific facts:

  • The selected application name.
  • The device on which the application runs.
  • The device on which the Localtonet client will run.
  • The exact local IP address or hostname reachable from that client device.
  • The verified application port.
  • Whether the local service expects HTTP or HTTPS.
  • The application login or access-control state, without copying credentials into the record.
  • The result of a browser or curl test from the client device.

This short record prevents a common failure pattern in which administrators change the application, container networking, firewall, and tunnel simultaneously without knowing which layer caused the problem.

Publish the verified application with a Localtonet HTTP tunnel

HTTP traffic traveling from a remote browser through Localtonet to a Saltbox application on Ubuntu Server.
The HTTP tunnel forwards public requests to the application already verified on the local server.

Once the application responds locally, an HTTP tunnel is the appropriate Localtonet family for a browser-based web interface. Our client establishes an outbound connection to a Localtonet relay server. This makes it possible to expose the service without inbound router port forwarding, firewall changes for an inbound internet connection, VPN setup, or a public IP address.

The tunnel points to the application’s local IP address and port as seen from the client device. Creating the tunnel does not start it. The selected client must be connected, and the tunnel must be started before the assigned public address becomes available.

1

Install and run our client on a device that reaches the app

Use the Saltbox host or another device that can successfully connect to the verified application endpoint. Complete the current Localtonet client installation for that device’s operating system, then run the client.

2

Authenticate and select the client device

Use the device-specific authentication token through the supported client workflow, then select that connected device when creating the tunnel. Treat the token as a secret. Do not place it in screenshots, commands shared publicly, application configuration, or this article’s example values.

3

Select an available relay server

Choose a server or region currently available in the dashboard. Availability can vary, so use the current product choices rather than a server code copied from an older tutorial.

4

Create an HTTP tunnel for the verified target

Select the HTTP tunnel family and enter the local IP address and port that passed your local test. HTTP tunnels can use Random Sub Domain, Custom Sub Domain, or Custom Domain process types. All three serve the target at a public HTTPS address, but availability can depend on the current product configuration or plan.

5

Start the tunnel

Use the Start button after reviewing the target. Merely creating the tunnel does not make it run. Confirm that the selected client remains connected and that the tunnel reports a running state.

6

Test the public address and manage its lifecycle

Open the assigned public URL from a separate connection and confirm that it reaches the intended application and its authentication screen. Stop the tunnel when public access is not needed, or delete it when the configuration is no longer required.

For the current dashboard workflow and field names, consult our HTTP tunnel documentation. If you choose a custom domain, check the current documentation for its DNS requirements rather than applying a record type or destination copied from an unrelated guide.

Choose the target according to the client location

Client topology Target to verify Common concern
Client on the Saltbox host The application endpoint reachable locally on that host Confirm that the selected port belongs to the intended application.
Client on another LAN device The Saltbox host address and app port reachable from that device A loopback-only application listener cannot be reached from another machine.
Client in a separate network An endpoint already reachable from the client device Local routing and policy must work before tunneling can work.

Do not configure a raw TCP tunnel merely because a port is involved. Browser-based HTTP applications normally belong behind an HTTP tunnel. Raw TCP and UDP tunnels serve different protocol requirements. Use the protocol actually spoken by the selected service, not the protocol name that seems most general.

Tunnel availability depends on two running components

The public endpoint is available only while the selected Localtonet client is connected and the tunnel is running. The Saltbox application must also remain healthy and reachable at the configured local target.

Secure the application before and after publication

A public URL changes the exposure boundary of the selected application. A service previously reachable only from the host or LAN may now receive internet traffic through the tunnel. Localtonet removes the need for inbound router port forwarding, but it does not replace application authentication, authorization, updates, or safe administrative practices.

Require application authentication

Complete the selected application’s own authentication setup before starting the tunnel. Use a strong, unique password and any additional access controls officially supported by that application. Do not expose an initial setup wizard, unauthenticated administrative console, or interface that assumes every visitor is trusted.

Expose only the service you selected

Point the tunnel at one verified application endpoint. Do not publish the Docker daemon, a host administration port, or an unrelated service merely to make troubleshooting easier. If several applications need remote access, evaluate each one independently and create only the configurations that are necessary.

Protect the Localtonet device token

A Localtonet authentication token identifies the client device that runs the tunnel. It is device-specific and must not be guessed, reused in examples, committed to a repository, or included in support screenshots. If a token may have been disclosed, handle it through the current account and device-management workflow rather than continuing to use a potentially exposed secret.

Use least privilege inside the media stack

Application accounts should have only the permissions required for their intended users. An ordinary remote media user does not necessarily need access to container administration, automation settings, download clients, or storage-management interfaces. Separating playback, request, automation, and infrastructure administration reduces the impact of a compromised account.

Stop access when it is no longer needed

A tunnel can be stopped without deleting its configuration. Use that lifecycle control when remote access is temporary. Delete obsolete tunnels so they are not accidentally restarted against a repurposed port later.

A public HTTPS address is not an authorization policy

The HTTP tunnel can provide a public HTTPS address for the selected local service, but the application must still enforce who is permitted to sign in and what each user can do. Test unauthenticated behavior before sharing the URL.

Operate and maintain the deployment

Once installation and remote access work, keep Saltbox operation, application operation, and tunnel operation observable. Record the Saltbox version, the installed roles, the selected application endpoint, and the device running our client. Avoid recording secret token values or passwords.

Validate after configuration changes

Run Saltbox’s configuration validator whenever you modify its managed configuration:

sb validate-config

Validation is especially useful before applying another application role or updating an existing role. It cannot guarantee that an external account or storage provider will work, but it can detect configuration problems recognized by Saltbox’s current schema.

Use diagnostics and logs for their documented purposes

Saltbox provides a diagnostics command:

sb diag

It also provides a command that displays logs for managed systemd services:

sb logs

Use these as part of diagnosis, but distinguish systemd service logs from application container logs. The supplied evidence does not establish exact per-application log commands, paths, or retention behavior, so inspect the installed CLI and current application documentation rather than guessing.

Review updates before applying them

The CLI includes sb update for updating Saltbox and Sandbox. Before updating a working system, check current release guidance, confirm that your platform remains supported, and verify that you have an appropriate recovery or backup plan. The project also contains backup and restore documentation, but the supplied evidence does not define one universal backup command or guarantee that every application’s data uses the same location.

After an update, validate the configuration, confirm the selected container is healthy, repeat the local HTTP test, and then test the public URL. This order quickly shows whether a failure belongs to Saltbox, the application, or the tunnel.

Troubleshoot Saltbox and Localtonet by layer

Layered troubleshooting path from the local application to the public Localtonet endpoint.
Test each layer in order to isolate application, host, tunnel, and public-access failures.

Troubleshooting is faster when you begin at the application and move outward. The expected chain is: application process, Docker container, local address and port, Localtonet client reachability, running tunnel, and public URL. Test each link once and avoid changing several layers at the same time.

Symptom Likely layer What to check
sb is not found Saltbox bootstrap or shell environment Recheck the current official installation workflow and any bootstrap errors. Do not proceed to tunnel setup.
Configuration validation fails Saltbox configuration Correct the reported configuration problem, then rerun sb validate-config.
The selected application is absent Ansible role selection or installation Confirm the valid tag through sb list, review the installation output, and verify that the intended role completed.
The container repeatedly restarts Application or container runtime Review current container status, application configuration, and relevant logs before creating a tunnel.
The app works on the host but not from the client device Listener address or local routing Confirm that the service is reachable from the device running our client. Do not use the Saltbox host’s loopback address from another device.
The tunnel exists but has no public response Tunnel lifecycle or client connectivity Confirm that the selected device is connected, the tunnel was started, and the configured local target still responds from that device.
The public URL reaches the wrong service Incorrect target port Stop the tunnel immediately and verify which process owns the configured port before restarting it.
The login page appears, but authentication fails Application authentication Check the application’s own account and access-control configuration. The tunnel does not create or reset application users.
Access stops after a reboot Application, client, or tunnel runtime Check each component separately: the application container, local endpoint, Localtonet client connection, and tunnel state.

When local access fails

Stop working on the public tunnel. Confirm the supported operating system, run configuration validation, inspect the Ansible result, check whether the application container is running, and identify its current endpoint. A Localtonet configuration cannot make a stopped or unreachable application healthy.

When local access works but public access fails

Test the exact target from the device running our client. If that succeeds, verify that the correct device and relay server were selected, then confirm that the tunnel was started. Compare the configured IP address and port character by character with the locally verified endpoint.

Also consider whether the application generates redirects to an internal hostname or port. That behavior belongs to the application or its local proxy configuration. The correct remedy depends on the application’s documented external URL or proxy settings, which are not universal across the Saltbox application catalog.

When public access reaches an unexpected page

Stop the tunnel before investigating. An unexpected page strongly suggests that the configured port belongs to another local service or proxy route. Recheck the runtime port mapping and test the endpoint locally. Do not leave an unknown administrative or setup interface publicly reachable.

When the platform itself is unsupported

Do not attempt to solve ARM, Ubuntu Desktop, non-LTS Ubuntu, or another Linux distribution by modifying arbitrary Ansible tasks. Rebuild on a supported x64 Ubuntu Server release. A clean supported foundation is more reliable than maintaining undocumented compatibility changes through every Saltbox update.

Frequently asked questions

Which Ubuntu versions support a fresh Saltbox installation?

Fresh Saltbox installations are supported on x64 Ubuntu Server 24.04 LTS and Ubuntu Server 26.04 LTS. Ubuntu Server 22.04 LTS remains supported for existing installations only. Ubuntu Desktop, non-LTS Ubuntu releases, other Linux distributions, and ARM processors are not supported.

Does Saltbox have its own dashboard?

No. Saltbox-specific setup and commands are handled in text editors and on the command line. Individual applications deployed by Saltbox can provide web interfaces, but those interfaces belong to the applications rather than to Saltbox itself.

What port should I enter in the Localtonet HTTP tunnel?

Enter the actual port of the selected application after verifying it from the current Saltbox or application configuration and testing it from the device running our client. There is no universal Saltbox web port, and this guide intentionally does not guess ports for Plex, Emby, Sonarr, Radarr, Overseerr, Organizr, Portainer, or any other application.

Can the Localtonet client run on a different device from Saltbox?

Yes, provided that the client device can reach the selected application’s local address and port. Test the application from that device before configuring the tunnel. A service bound only to loopback on the Saltbox host will not be reachable from another machine.

Do I need router port forwarding or a public IP address?

No. Our client establishes an outbound connection to a Localtonet relay server, so this workflow does not require inbound router port forwarding, inbound firewall changes, VPN setup, or a public IP address. The selected client must remain connected and the tunnel must be running.

Does creating a Localtonet tunnel start it automatically?

No. Creating a tunnel and running it are separate lifecycle actions. After creating and reviewing the configuration, use the Start button. You can later stop the tunnel without deleting it, or delete it when the configuration is no longer needed.

Does the tunnel replace the media application's login?

No. Configure and test the application’s own authentication and authorization before public access is enabled. The tunnel transports requests to the selected service, but it does not create users, reset passwords, or determine what authenticated users can access.

Why does this guide not include a complete Saltbox bootstrap command?

The approved official evidence for this draft confirms Saltbox’s supported systems, Ansible deployment model, and CLI commands, but it does not contain the current bootstrap invocation or prerequisite package sequence. Rather than inventing or publishing an outdated installer command, the guide directs readers to the current Saltbox Install workflow and documents the verified steps that follow installation.

Connect your verified Saltbox application with Localtonet

Once the selected application works from the device running our client, create an HTTP tunnel for that exact local address and port. Keep application authentication enabled, start the tunnel only when you are ready, and test the public URL from a separate connection.

Get Started Free →

Localtonet is a secure multi-protocol tunneling and proxy platform designed to expose localhost, devices, private services, and AI agents to the public internet supporting HTTP/HTTPS tunnels, TCP/UDP forwarding, mobile proxy infrastructure, file server publishing, latency-optimized game connectivity, and developer-ready AI agent endpoint exposure from a single unified control plane.

support