28 min read

Self-Host Cliparr and Access It with Localtonet

Install Cliparr with Docker, verify Plex and Jellyfin clipping locally, then provide secure remote access through a Localtonet HTTP tunnel.

Self-Hosted Apps ยท Cliparr ยท Localtonet ยท 2026

Create browser-processed clips from your own media server, then reach the editor through HTTPS

Cliparr is a self-hosted browser application for trimming media, creating subtitles, and exporting video, audio, or GIF clips. This guide installs Cliparr with Docker, preserves its application key and data, connects Plex or Jellyfin, and verifies a complete local export. It then installs the Localtonet client on a supported Linux host and creates an HTTP tunnel for remote HTTPS access. Security, port binding, backups, routine updates, the destructive Cliparr 2.x to 3.x migration, and persistent-connection testing are covered separately so each decision is explicit.

๐Ÿ”’ Stable application key and persistent data ๐ŸŒ HTTPS access through a Localtonet HTTP tunnel โšก Browser-based editing without server-side FFmpeg

Understand the Cliparr architecture before installing it

Self-hosted Cliparr receives media locally and reaches a remote browser through a Localtonet tunnel.
Cliparr remains on the private Docker host while the Localtonet client provides the outbound path to a public HTTPS address.

Cliparr is designed to create clips from Plex, Jellyfin, local files, and supported direct media URLs. Its editor can trim and fine-tune a range on a timeline, create or import subtitles, burn supported subtitles into an export, and produce video, audio-only, or GIF output.

The division of work between the server and browser matters. The self-hosted server handles media-server authentication, encrypted provider records, active playback discovery, and proxy work for media routes. Editing and export processing run in the browser. A local file is read directly by the browser rather than uploaded to Cliparr first. Plex, Jellyfin, and direct media URL sources can pass through Cliparr's media proxy so the browser can preview and export authenticated media.

Because processing happens in the browser, the documented Cliparr workflow does not require FFmpeg on the Docker host. The browser device still needs enough memory and compatible codecs for the selected source and output. A powerful server does not prevent a browser tab or mobile device from running out of memory during a large export.

Plex, Jellyfin, and local files feed a Cliparr container accessed by a local browser.
Cliparr connects provider sources and persistent application data to the browser in which editing and export processing occur.
๐ŸŽฌ Timeline editing Choose a clip range, zoom the timeline, and adjust start and end points before exporting.
๐Ÿ“บ Provider discovery Connected Plex and Jellyfin providers can report active playback sessions under the documented account and version requirements.
๐Ÿ“ Local files Open a video from the browser device without first uploading that file to the Cliparr server.
๐Ÿ’ฌ Subtitle tools Create captions, import supported subtitles, adjust their presentation, and burn them into supported exports.
๐ŸŽต Several export types Cliparr supports video, audio-only, and GIF workflows. Documented audio choices include MP3, M4A/AAC, Ogg/Opus, FLAC, and WAV.
๐Ÿงญ Browser-side processing The browser performs editing and export work while the server manages provider connections and media proxy routes.
Remote editing requires more than a reachable HTTP port

Cliparr can be opened on the Docker host at http://localhost:7171, but its current quick start states that access from other devices requires HTTPS for editing. A Localtonet HTTP tunnel can give the working local service a public HTTPS address without requiring inbound router port forwarding.

Prepare the host, secrets, storage, and network binding

Cliparr's supported quick start uses Docker with Linux containers and the published image ghcr.io/techsquidtv/cliparr:latest. You need a stable application key, a persistent volume, an available host port, and a current browser. Plex and Jellyfin are optional because a local file can be used for the first editor test.

Review the current Cliparr repository and quick start before installation. The repository is also the primary entry point for Cliparr's provider, configuration, browser-support, reverse-proxy, and access-control guides.

Requirement Why it is needed What to prepare
Docker with Linux containers Runs the supported Cliparr container image Confirm that the Docker engine is installed and running
Stable APP_KEY Protects provider information stored by Cliparr Generate a random secret of at least 32 characters and retain it securely
Persistent Docker volume Preserves Cliparr data across container replacement Use cliparr-data mounted at /data
Host port 7171 Publishes the container's HTTP service Confirm that the port is free and choose an appropriate host-interface binding
Compatible browser Performs editing and export processing Use a current browser with enough memory for the intended export
Reachable provider address Lets Cliparr authenticate, discover sessions, and proxy provider media Use an address reachable from inside the Cliparr container

Generate and retain the application key

Cliparr requires an APP_KEY containing a random secret of at least 32 characters. On a system with OpenSSL, the documented example is:

openssl rand -base64 32

Save the generated value in a password manager or another protected secret store before creating the container. Do not publish it, commit it to a repository, include it in screenshots, or paste it into support messages. Commands in this guide use a placeholder instead of a real secret.

Keep APP_KEY and the data volume across normal updates

Changing APP_KEY requires reconnecting your media servers. The key and volume are separate parts of the deployment state. A volume backup does not automatically preserve a key that was stored only elsewhere, and retaining the key does not recover a deleted volume.

Choose the Docker port binding based on the Localtonet client location

Docker's documented quick-start mapping, -p 7171:7171, normally publishes port 7171 on every host interface. Depending on the host firewall and network, that can make Cliparr reachable from the LAN or other connected networks before a tunnel is created.

If Localtonet will run on the same host as Docker, bind Cliparr to loopback with -p 127.0.0.1:7171:7171. The Localtonet client can then target 127.0.0.1:7171, while other LAN devices cannot connect directly through the host's private address.

If Localtonet will run on another device, loopback-only publication will not work because that other device cannot reach the Docker host's loopback interface. Publish Cliparr on a deliberately selected private interface, use the Docker host's private address as the tunnel target, and enforce suitable host firewall and network controls. Avoid exposing port 7171 on more interfaces than the deployment needs.

Port publication and tunneling are separate exposure paths

A tunnel does not remove a Docker host-port publication. If Cliparr is bound to every host interface, it may remain directly reachable over the LAN even after the Localtonet tunnel is stopped. Prefer loopback when both services share a host, or a controlled private-interface binding when they do not.

Use an address the container can actually reach

From inside the Cliparr container, localhost refers to the container itself. It does not automatically refer to a Plex or Jellyfin process elsewhere on the Docker host or LAN. Use a private address or container-network name that resolves and routes correctly from the Cliparr container.

Cliparr 3 requires explicit opt-in for loopback media-server URLs. Plex uses CLIPARR_ALLOW_LOOPBACK_PLEX_URLS=true, while Jellyfin uses CLIPARR_ALLOW_LOOPBACK_JELLYFIN_URLS=true. The Cliparr 3 release and configuration notes say to enable these only when every signed-in user is trusted. Private LAN server addresses continue to work without these flags.

Install Cliparr with Docker

The commands below use a loopback-only publication because that is the narrower choice when the Localtonet client will run on the same host. If your Localtonet client must run on another private device, replace this binding with a deliberately reachable private-interface publication and apply host controls before proceeding.

1

Create and save APP_KEY

Generate a random value of at least 32 characters and store it securely. Use the same value whenever the container is replaced during a normal update.

2

Run the Cliparr container

Use the published image, the persistent cliparr-data volume, and the host binding appropriate to the location of the Localtonet client.

3

Confirm that the container stays running

Inspect the Docker process list and logs. Resolve application-key errors, port conflicts, or container failures before configuring remote access.

4

Open the local interface

On the Docker host, browse to http://localhost:7171. Connect a provider or choose Open Video for a local test file.

macOS or Linux shell

docker run -d \
  --name cliparr \
  -p 127.0.0.1:7171:7171 \
  -e APP_KEY="your-32-char-stable-random-secret" \
  -v cliparr-data:/data \
  ghcr.io/techsquidtv/cliparr:latest

PowerShell

docker run -d `
  --name cliparr `
  -p 127.0.0.1:7171:7171 `
  -e APP_KEY="your-32-char-stable-random-secret" `
  -v cliparr-data:/data `
  ghcr.io/techsquidtv/cliparr:latest

The named volume is created automatically when it does not already exist. Docker starts the container in detached mode under the name cliparr.

docker ps --filter name=cliparr
docker logs cliparr

Open http://localhost:7171 on the Docker host. Do not proceed to Localtonet until this endpoint works. A tunnel cannot repair a stopped container, an invalid key, a port conflict, or a provider address the container cannot reach.

Connect Plex, Jellyfin, or a local file

The official Cliparr site summarizes the source workflow, while the repository documentation links to current provider setup and account requirements. Provider access should be tested locally before the tunnel is introduced.

Plex requirements

Connect the Plex account through Cliparr and select the intended server. Current Cliparr 3 guidance states that live Plex session discovery requires a Plex server administrator account. Cliparr can then discover active playback sessions, open the current media, and begin clipping around the playback position.

Media sources are associated with the signed-in provider account. If a previously visible server disappears, verify that Cliparr is signed in using the account that added it.

Jellyfin requirements

Connect Jellyfin using an address reachable from the Cliparr container and the intended account. Regular Jellyfin accounts require Jellyfin 10.11 or newer for live session updates. With an older server, upgrade Jellyfin or connect an administrator account.

Configure the final Jellyfin address directly. Cliparr 3 rejects redirects to a different localhost address or port, including when loopback access has been enabled. A container-network address such as http://jellyfin:8096 is appropriate only if that hostname and port genuinely exist in your Docker environment.

Local video workflow

For the least complex test, choose Open Video and select a video from the device running the browser. The browser reads the file directly. This isolates the editor from provider authentication, playback discovery, and server-to-server networking.

Source Requirement How media reaches the editor
Local video Browser access to the selected file The browser reads the file directly without uploading it to Cliparr first
Plex Connected Plex account; administrator account for session discovery Cliparr manages provider authentication and can proxy authenticated media routes
Jellyfin Connected account; version and account requirements apply to live updates Cliparr discovers sessions and helps the browser reach authenticated media
Direct media URL Provider sign-in when the source requires authenticated access The source can route through the self-hosted Cliparr media proxy

Verify editing and export locally

Five local checks confirm media loading, seeking, clipping, and saved output before remote access.
A local test should cover source loading and export, not only the Cliparr landing page.

Establish a known-good baseline before adding HTTPS and remote networking. A complete test confirms source loading, timeline interaction, playback, and at least one short export.

1

Load Cliparr on the host

Open http://localhost:7171 from the Docker host. Initial editing should be tested through localhost because Cliparr requires HTTPS when editing from another device.

2

Open a known source

Select a small local video, or start playback in Plex or Jellyfin and confirm that the expected session appears.

3

Exercise the timeline

Move the start and end points, zoom if needed, and preview the selected range.

4

Test subtitles when required

Import a supported subtitle track or create captions, then confirm that the intended captions overlap the selected range.

5

Export a short clip

Choose a format supported by the browser. Open the result and verify duration, picture, audio, subtitles, and any metadata important to your workflow.

Cliparr can preserve source details, artwork, credits, and millisecond clip timing in supported video and audio containers. When valid provider data is available, supported exports can include IMDb, TMDB, and TVDB identifiers and critic or audience ratings. GIF exports do not include transcript metadata.

Audio-only output includes MP3, M4A/AAC, Ogg/Opus, FLAC, and WAV. Mix down to stereo is enabled by default in Cliparr 3. Surround audio is converted to stereo unless that option is disabled for a supported AAC or FLAC workflow. MP3, WAV, and Opus currently require mono or stereo.

Browser memory and format limits still apply

Exports remain in browser memory. Large jobs can exceed the resources available to a browser tab or mobile device, and WAV has a 4 GiB file-size limit. Start with a short selection before increasing the export duration.

Install and verify the Localtonet client on Debian or Ubuntu

This procedure intentionally covers one current, repeatable deployment path: the Localtonet DEB package on a supported x64 Debian or Ubuntu host. The current package requirements are systemd 247 or newer and OpenSSL 3, such as Debian 12 or Ubuntu 22.04 and newer. ARM64 packages and additional operating-system downloads are available in the Localtonet installation documentation, but package names must match the host architecture.

Download the current Debian or Ubuntu x64 package from our documentation page. The commands below assume the downloaded file is named localtonet-linux-x64.deb and that the terminal is open in the directory containing it.

1

Confirm the host meets the package requirements

Use a supported x64 Debian or Ubuntu release with systemd 247 or newer and OpenSSL 3. Select another documented package if the host uses ARM64, RPM packaging, MUSL, macOS, Windows, Docker, or another supported environment.

2

Install the downloaded DEB package

Install the local package with APT so its dependencies and system service are configured through the package manager.

3

Place the device AuthToken in its protected file

Edit /etc/localtonet/auth-token as root and replace DUMMY_AUTH_TOKEN with the device-specific token on one line. Do not place the token in public commands, screenshots, repositories, or support records.

4

Protect the token and validate the configuration

Set file mode 600, then run the headless configuration check using the token file. Do not start the service until validation succeeds.

5

Enable and start the service

Start the standard Localtonet service and enable it for future boots. This tutorial uses standard HTTP tunneling, not the separate VPN Manager service.

6

Inspect the service logs

Review the systemd journal and confirm that the client starts successfully. Keep the client connected because a tunnel is available only while its selected client and the tunnel are running.

sudo apt install ./localtonet-linux-x64.deb

Edit /etc/localtonet/auth-token as root, replace the package's placeholder with your real device token on one line, save the file, and then run:

sudo chmod 600 /etc/localtonet/auth-token
sudo localtonet --headless --authtoken-file /etc/localtonet/auth-token --check-config

After the check reports a valid configuration, start and inspect the service:

sudo systemctl enable --now localtonet.service
sudo systemctl status localtonet.service
sudo journalctl -u localtonet.service
The AuthToken identifies the client device

Treat it as a credential. Do not substitute a made-up value, expose it in shell transcripts, or reuse an example from another device. If it is disclosed, replace or revoke it through the appropriate Localtonet account workflow.

For a future Localtonet package update, install the new package and restart the service:

sudo systemctl restart localtonet.service
sudo journalctl -u localtonet.service

Create and start the Localtonet HTTP tunnel

Remote HTTP traffic passes through Localtonet to Cliparr on a private Docker host.
The Localtonet client creates an outbound connection to our relay, which forwards the public HTTPS request to the configured Cliparr target.

Once Cliparr works locally and the Localtonet client is connected, create an HTTP tunnel using the workflow in our HTTP tunnel documentation. HTTP and File Server process types can use a random subdomain, a custom subdomain where supported, or a custom domain. Select only options and relay servers currently displayed for your account.

The target address depends on where the client runs. When Docker and Localtonet share a host and Cliparr uses the loopback publication shown above, use 127.0.0.1 and port 7171. When the client runs elsewhere, use the Cliparr host's deliberately reachable private IP and port. In that second design, 127.0.0.1 would incorrectly refer to the Localtonet device itself.

1

Open the HTTP tunnel configuration

Sign in to the Localtonet dashboard and open the HTTP tunnel page for the connected client device.

2

Select the process type

Choose Random Sub Domain, Custom Sub Domain, or Custom Domain according to the options currently available to your account. Each process type serves the target at a public HTTPS address.

3

Select the AuthToken and relay server

Choose the device-specific token for the client that can reach Cliparr, then select a relay server offered in the current dashboard. Do not copy a hardcoded server code from another deployment.

4

Enter the local Cliparr target

Use local IP 127.0.0.1 and port 7171 when both applications share the host. Otherwise, enter the controlled private address and port reachable from the selected client.

5

Create, then start the tunnel

Creating a tunnel does not mean it is running. Use Start after saving the configuration, then confirm that the selected client and tunnel are connected.

6

Test the assigned HTTPS address

Open the exact public HTTPS URL from another device. Test source discovery, seeking, and a short export instead of checking only the home page.

There are two independent availability requirements

Cliparr must be running and reachable at the configured local target. The selected Localtonet client must also be connected, and the tunnel must have been started. If either side stops, the public address cannot deliver Cliparr.

Verify persistent connections and media routes

A successful page load proves only that an ordinary HTTP request reached Cliparr. Current Cliparr guidance says reverse-proxy paths must support persistent notification connections. Jellyfin communication uses WebSockets, while Plex-to-Cliparr and Cliparr-to-browser event updates use unbuffered server-sent events.

The supplied Localtonet evidence does not independently establish end-to-end behavior for every Cliparr WebSocket and server-sent-event path, client version, relay, or deployment. Verify these behaviors in the actual tunnel rather than inferring compatibility from the landing page:

  • Open the assigned https:// URL from a separate device.
  • Connect to the intended Plex or Jellyfin account.
  • Start, pause, and stop playback, then watch whether sessions update promptly.
  • Leave the page open long enough to detect dropped or repeatedly reconnecting notifications.
  • Preview provider media and move the timeline range.
  • Complete a short export and open the downloaded result.
  • Repeat with subtitles if they are part of the intended workflow.

If the interface loads but sessions become stale, treat persistent-connection handling as unverified until the complete path works reliably. Review Cliparr's current reverse-proxy guidance from the official repository and inspect the Cliparr and Localtonet logs for disconnects.

Back up, restore, and update Cliparr safely

Routine container operation

Stopping and starting the existing container does not remove its named volume:

docker stop cliparr
docker start cliparr
docker logs cliparr

Stopping Cliparr leaves the Localtonet tunnel configuration intact, but the target remains unavailable until Cliparr starts again. Stopping the Localtonet client or tunnel makes the public URL unavailable while Cliparr can continue working locally.

Create a stopped-container volume backup

The following procedure is for a POSIX-compatible shell. It stops Cliparr so files in the named volume do not change while the archive is created. It writes cliparr-data-backup.tar.gz to the current directory by mounting the volume read-only in a temporary Alpine container.

docker stop cliparr

docker run --rm \
  -v cliparr-data:/volume:ro \
  -v "$PWD":/backup \
  alpine \
  sh -c 'tar -czf /backup/cliparr-data-backup.tar.gz -C /volume .'

docker start cliparr

Confirm that the archive exists and store it somewhere protected. Back up the exact APP_KEY separately in your secret manager. A restore requires both the volume contents and the original key if you want existing encrypted provider records to remain usable.

Restore the named volume

Restoration replaces the current volume contents

Stop and remove the Cliparr container before restoring. Keep a separate copy of the current volume if it might still be needed. Restore only a backup you trust, and recreate Cliparr with the same APP_KEY.

docker stop cliparr
docker rm cliparr

docker volume rm cliparr-data
docker volume create cliparr-data

docker run --rm \
  -v cliparr-data:/volume \
  -v "$PWD":/backup:ro \
  alpine \
  sh -c 'tar -xzf /backup/cliparr-data-backup.tar.gz -C /volume'

Recreate the Cliparr container using the same image configuration, port binding, volume mount, and saved APP_KEY. Then verify the local page, provider connections, a short export, and the public HTTPS workflow.

Perform a normal container update

A routine update replaces the container while preserving cliparr-data and APP_KEY. Take a stopped-container backup first, read the release notes for the destination version, and then pull and recreate the container.

docker pull ghcr.io/techsquidtv/cliparr:latest
docker stop cliparr
docker rm cliparr

docker run -d \
  --name cliparr \
  -p 127.0.0.1:7171:7171 \
  -e APP_KEY="your-original-stable-app-key" \
  -v cliparr-data:/data \
  ghcr.io/techsquidtv/cliparr:latest

If your deployment uses a controlled private-interface binding rather than loopback, recreate that same intended binding instead of copying the loopback example. Confirm that the new container remains running:

docker ps --filter name=cliparr
docker logs cliparr

Post-update verification should include all of the following:

  • Open http://localhost:7171 on the host.
  • Confirm that expected Plex or Jellyfin providers remain connected.
  • Open a known local or provider source.
  • Create and inspect a short export.
  • Open the Localtonet HTTPS URL from another device.
  • Test live session updates and a remote export.

Keep the destructive 2.x to 3.x migration separate

Cliparr 3 requires a new empty database when migrating from 2.x

This is not the normal update workflow. The official Cliparr 3 migration notes require deleting the existing 2.x database. Docker users must destroy the old application-data volume and attach a new empty volume. Export important drafts first because saved clip ranges and subtitle edits from earlier versions cannot be restored after migration.

According to those release notes, original media, already downloaded clips, and subtitle style preferences are preserved outside the deleted database as applicable, but saved editing drafts are not. Reopening provider media may import the preferred supported subtitle track again, while local videos begin without subtitles.

Remembered provider logins created or renewed under Cliparr 3 last 30 days rather than one year. Existing remembered logins retain their previous expiration until renewed. Do not delete a current volume during an ordinary later update unless the release notes for that specific transition explicitly require it.

Troubleshoot each layer in order

The local page does not open

Check whether the container is running and inspect its logs:

docker ps --filter name=cliparr
docker logs cliparr

Confirm that Docker is using Linux containers, that the intended host binding was created, and that port 7171 was not already occupied. Verify http://localhost:7171 before changing any tunnel setting.

Plex or Jellyfin cannot connect

Confirm that the provider address is reachable from the Cliparr container, not only from the host browser. Replace an inappropriate localhost address with a valid private address or container-network name. Enable a provider-specific loopback variable only when the architecture requires it and every signed-in user is trusted.

Plex session discovery requires a server administrator account. Regular Jellyfin accounts require Jellyfin 10.11 or newer for live session updates. Configure Jellyfin's final address directly rather than relying on a redirect to another localhost port.

Sessions are missing, stale, or repeatedly reconnecting

Verify that playback is active and that Cliparr is signed in with the account that added the source. Disconnected servers can retain their last known sessions with a connection status, so a visible old session does not prove that the provider is currently connected.

If the problem appears only through the public path, test the WebSocket and server-sent-event behavior described earlier. A static page response does not validate those persistent notification channels.

The Localtonet service does not connect

Run the configuration check again without exposing the token, then inspect the service status and logs:

sudo localtonet --headless --authtoken-file /etc/localtonet/auth-token --check-config
sudo systemctl status localtonet.service
sudo journalctl -u localtonet.service

Confirm that the token file contains the intended device token on one line and is readable by the service under the packaged configuration. Keep its permissions at mode 600.

The public URL does not load

  1. Confirm that Cliparr opens locally on port 7171.
  2. Confirm that the Localtonet client is connected.
  3. Confirm that the HTTP tunnel was started after it was created.
  4. Verify the tunnel's local IP address and port.
  5. If the client is on another machine, verify private-network reachability from that machine.
  6. Use the assigned HTTPS URL instead of a guessed hostname.

Remember that 127.0.0.1 always refers to the machine on which the Localtonet client runs. It is the correct target only when that same machine can reach Cliparr on loopback.

Editing works locally but not remotely

Confirm that the remote browser uses the Localtonet https:// address. Test a local file separately from a provider source. If a local file works but Plex or Jellyfin fails, investigate provider authentication, media proxy reachability, and persistent connections rather than the basic editor.

A FLAC or large export fails

Cliparr documents a boundary-related FLAC limitation. Choose WAV or adjust the clip's start or end time. If Cliparr cannot read the end of a standalone FLAC file, shorten the selection to end before the unreadable area. Changing output format cannot recover source audio that Cliparr could not read.

For a large export, shorten the range and retry. Exports remain in browser memory, and WAV cannot exceed its 4 GiB file-size limit.

Plex subtitles are unavailable

Prefer SRT/SubRip or WebVTT where available. Other text subtitle formats may require Plex to convert them before Cliparr can use them. Some embedded text tracks become available only after the track is selected during Plex playback.

Secure a remotely accessible Cliparr deployment

A public HTTPS address provides secure transport and the browser context Cliparr requires for remote editing. It does not, by itself, authorize users. A difficult-to-guess or unpublished URL is not an access-control mechanism.

The supplied Cliparr evidence links to reverse-proxy and access-control guidance but does not establish that every Cliparr deployment has a built-in application login protecting the complete interface. Provider sign-in protects provider interactions, but it should not be assumed to protect every route or local-file workflow. Unless you have verified current Cliparr access controls for your deployed version, treat the public endpoint as exposed to anyone who obtains the URL.

Do not rely on URL secrecy

Before leaving the tunnel running, review Cliparr's current access-control guidance and place an independently verified authentication or authorization layer in the request path when access must be restricted. This article does not assume or invent a Localtonet access-control option. If you cannot confirm an adequate control for your deployment, stop the tunnel when it is not actively needed.

๐Ÿ”‘ Protect APP_KEY Keep the stable key out of repositories, screenshots, logs, and shared command records. Preserve it across normal container replacement.
๐Ÿงฑ Limit the Docker binding Use loopback when Localtonet shares the host. Otherwise bind deliberately to a controlled private interface and apply host firewall rules.
๐Ÿ‘ค Verify authorization Do not treat a hidden URL or provider login as proof that the whole Cliparr interface is protected.
๐Ÿ”’ Use HTTPS remotely Cliparr requires HTTPS for editing from another device. Use the assigned tunnel URL instead of publishing plain remote HTTP.
โน๏ธ Stop unneeded access A created tunnel is separate from a running tunnel. Stop or delete it when remote access is no longer required.
๐Ÿงฉ Minimize loopback exceptions Enable provider loopback URL flags only when required and only when every signed-in user is trusted.

Never expose the Localtonet device token, Cliparr application key, Plex credentials, Jellyfin credentials, provider tokens, or private media endpoints. If a credential is disclosed, revoke or rotate it through the system that issued it and update the deployment.

Recheck the complete workflow after updates or configuration changes. A short remote export, provider-session update, and local verification provide a stronger health check than a successful response from the home page.

Frequently asked questions

Does Cliparr require FFmpeg on the server?

No. Cliparr performs documented video, audio, and GIF export processing in the browser. The server handles provider authentication, encrypted provider records, playback discovery, and media proxy routes.

Should Docker publish Cliparr only on 127.0.0.1?

Use loopback when the Localtonet client runs on the same host. If the client runs on another device, Cliparr must instead be reachable through a deliberately selected private address, with appropriate host and network controls.

Why must APP_KEY remain stable?

Cliparr uses the key while protecting stored provider information. Changing it requires reconnecting media servers, so preserve the key securely along with the persistent data volume.

Can Cliparr edit a local file without Plex or Jellyfin?

Yes. Choose Open Video and select a file available to the browser. The browser reads that file directly instead of uploading it to Cliparr first.

Does creating a Localtonet tunnel start it?

No. Creation and operation are separate lifecycle states. After creating the HTTP tunnel, use Start. The selected client must remain connected, and Cliparr must remain reachable at the configured target.

Is keeping the public URL private enough to secure Cliparr?

No. URL secrecy is not authorization. Verify Cliparr's current access controls and use an independently verified authentication or authorization layer when access must be restricted. Stop the tunnel when it is not needed.

Can the Localtonet client run on another device?

Yes, provided that device can reach the Cliparr host over the private network. Use the Cliparr host's private address and port 7171 as the tunnel target. Do not use 127.0.0.1 because it would refer to the Localtonet client device.

How do I perform a normal Cliparr update?

Back up the stopped volume, retain the original APP_KEY, pull the new image, remove the old container, and recreate it with the same volume and intended port binding. Then test locally and through the public HTTPS URL.

What is different about upgrading Cliparr 2.x to 3.x?

The documented migration is destructive. Export important drafts first, delete the old 2.x database, and attach a new empty volume. Saved clip ranges and subtitle edits from earlier versions cannot be restored after migration.

Does a successful page load prove WebSockets and server-sent events work?

No. Test live Plex or Jellyfin session changes, leave the connection open, and complete a provider-media export. A static page request does not validate Cliparr's persistent notification paths.

Connect your verified Cliparr deployment to Localtonet

Confirm that Cliparr works locally, protect its port binding and application state, then create and start a Localtonet HTTP tunnel to the reachable service. Test the complete HTTPS editing workflow before relying on it remotely.

Get Started Free โ†’

Corrections & updates

Substantive changes approved by the Localtonet editorial team are listed transparently below.

Remove the outer article element; make the hero the first component and place the existing clickable guide card directly after it; move the lead figure into a relevant section. Add a scoped, current Localtonet client installation procedure, including prerequisites, secure AuthToken handling, configuration validation, service startup, and log verification for the selected deployment path. Validate the dashboard tunnel sequence against the dedicated HTTP tunnel documentation and retain the distinction between creating and starting a tun

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