Índice de la guía3 de 9
Publicar una web o una API
De app=3000 a una dirección con HTTPS, con contraseña o token si hace falta.
Lo básico
En tu máquina
lnkstart add app=3000 lnkstart add api=8080 nas=192.168.1.20:5000
app=3000 queda en app.tunnels.midominio.com. La segunda línea publica dos cosas, y una vive en otra máquina de tu red local.
Los WebSockets y las respuestas largas (SSE, descargas) pasan tal cual. Si tu app necesita ver el dominio público en la cabecera Host, añade --preserve-host; para quitarlo, repite el mismo add sin la opción.
Antes de publicar, add pregunta a la app por lo que nadie quiere publicar sin saberlo: un .env con claves, la carpeta .git, credenciales de AWS o la consola de depuración de Flask. Si lo sirve, no publica y dice cómo arreglarlo (--force publica igualmente). phpinfo, server-status y parecidos sólo avisan. Todo se mira en tu máquina: nada sale de ella.
Proteger el acceso
En tu máquina
lnkstart add app=3000 --password lnkstart add app=3000 --access-token lnkstart add app=3000 --no-password
La contraseña se escribe sin que se vea (o en LNKSTART_PASSWORD). El token se enseña una vez y va en la cabecera x-lnkstart-token: para webhooks y scripts.
La protección es del nombre, no de la sesión: sigue puesta aunque reinicies el agente, hasta que la quites con --no-password o --no-access-token. Ni la contraseña ni el token llegan nunca a tu app.
Acceso temporal, sin dar la contraseña
En el VPS
sudo lnkstart server share app --for 2h --once --pin
Imprime un enlace (y un PIN) que se enseña una vez; --note dice para quién es. Quien lo abre entra sin saber la contraseña hasta que caduca; con --once, sólo la primera persona. Abrirlo no lo gasta: se gasta al pulsar Entrar, así que la vista previa de un chat no se lo queda. También desde la consola, en la ficha del servicio.
sudo lnkstart server share list dice cuáles siguen vivos y si alguien los usó, y desde qué IP; sudo lnkstart server share revoke saca en el acto a quien entró con uno. Sólo para servicios web protegidos: si no tienen contraseña ni token, no hay nada que saltarse. Con los avisos puestos, te llega uno cada vez que alguien entra con un enlace.
Cuando tu máquina no está
Si el agente o la app no responden, el visitante ve una página que dice que el servicio vuelve enseguida (código 503), nunca un error del servidor. En cuanto el agente vuelve, la siguiente visita entra.
Esa página, y el redirección de abajo, son para navegaciones: quien llama a una API recibe un 503 con un JSON ({"success": false, "error": "service_unavailable"}), que es lo que un cliente sabe leer.
En tu máquina
lnkstart add app=3000 --fallback https://estado.midominio.com
Con --fallback, en vez de esa página se manda al visitante a la dirección que digas.
Tu dominio principal y tus subdominios
Lo normal: la web en tu dominio y la API en un subdominio, cada una en un puerto de la misma máquina. El servidor mira el dominio que pide el visitante y lo manda al puerto que toca, como un server_name de nginx.
En tu máquina
lnkstart add tunnels.midominio.com=3000 api=8080 --app web
tunnels.midominio.com sirve tu web y api.tunnels.midominio.com tu API. Cada uno con su certificado.
Varias aplicaciones en una máquina
Con --app cada cosa queda agrupada en services.toml, el fichero de esta máquina. Se puede editar a mano, y no guarda ninguna contraseña: eso vive en el servidor.
~/.config/lnkstart/services.toml
[web] "tunnels.midominio.com" = 3000 api = 8080 [casa] nas = { port = 5000, host = "192.168.1.20" } camara = { port = 8554, tcp = "private" }
En tu máquina
lnkstart up lnkstart up web lnkstart down casa lnkstart down nas lnkstart reload
up publica todo lo que no esté apagado; down apaga una aplicación entera o un solo servicio sin perder lo guardado, y up con el mismo nombre lo vuelve a publicar (con el servicio instalado, se lo pasa a él). Si editas services.toml a mano, reload lo comprueba y se lo pasa al servicio instalado sin cortar lo que sirve.
Otro dominio distinto del tuyo
Un dominio que no cuelga de tunnels.midominio.com (tienda.example.com) lo autoriza el dueño del servidor, máquina por máquina. Su DNS tiene que apuntar al VPS, y el servidor no hay que reiniciarlo.
En el VPS
sudo lnkstart server join-code portatil --domains tienda.example.com sudo lnkstart server token domains add portatil otra.example.com
El primero, al crear la máquina; el segundo, para añadir uno después.
En tu máquina
lnkstart add tienda.example.com=3000