Localtunnel: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| Line 1: | Line 1: | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%' | ||
!scope='col' style='text-align:left'| | |||
[https://theboroer.github.io/localtunnel-www/ Localtunnel] | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0 3px 0' lang='bash'> | |||
source ~/.nvm/nvm.sh && nvm use node | source ~/.nvm/nvm.sh && nvm use node | ||
npm install -g localtunnel | npm install -g localtunnel | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
== | ==Systemd== | ||
{| | {|class='wikitable mw-collapsible' style='width:100%' | ||
| valign= | !scope='col' style='text-align:left' colspan='2'| | ||
<syntaxhighlight lang= | Systemd » Service | ||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0 3px 0' lang='ini'> | |||
cat << EOF | sudo tee /etc/systemd/system/chorke-academia-lt.service >/dev/null | cat << EOF | sudo tee /etc/systemd/system/chorke-academia-lt.service >/dev/null | ||
[Unit] | [Unit] | ||
| Line 27: | Line 36: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| valign= | |valign='top' style='width:50%'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0 3px 0' lang='bash'> | ||
sudo systemctl daemon-reload | sudo systemctl daemon-reload | ||
| Line 47: | Line 56: | ||
systemctl status chorke-academia-lt | systemctl status chorke-academia-lt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| valign= | |valign='top' colspan='2'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0 3px 0' lang='nginx'> | ||
# nginx virtual host & reverse proxy config | # nginx virtual host & reverse proxy config | ||
cat << EOF | sudo tee /etc/nginx/sites-enabled/chorke-academia.loca.lt >/dev/null | cat << EOF | sudo tee /etc/nginx/sites-enabled/chorke-academia.loca.lt >/dev/null | ||
| Line 88: | Line 93: | ||
EOF | EOF | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| valign= | |valign='top' colspan='2'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0 3px 0' lang='bash'> | ||
# haproxy frontend and backend config | # haproxy frontend and backend config | ||
: <<'EOC' | : <<'EOC' | ||
| Line 109: | Line 110: | ||
EOC | EOC | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|valign='top' colspan='2'| | |||
| valign= | |||
'''Note:''' | '''Note:''' | ||
No need to update any '''/etc/hosts''' entries | No need to update any '''/etc/hosts''' entries | ||
| Line 124: | Line 121: | ||
==Playground== | ==Playground== | ||
{| | {|class='wikitable mw-collapsible' style='width:100%' | ||
| valign= | !scope='col' style='text-align:left' colspan='2'| | ||
Playground | |||
|- | |||
|valign='top' style='width:50%'| | |||
lt --host 127.0.0.1 --port 80 --subdomain academia-chorke | lt --host 127.0.0.1 --port 80 --subdomain academia-chorke | ||
lt --port 80 --subdomain academia-chorke | lt --port 80 --subdomain academia-chorke | ||
| Line 134: | Line 134: | ||
|- | |- | ||
| | |valign='top' style='width:50%'| | ||
curl -k https://loca.lt/mytunnelpassword | curl -k https://loca.lt/mytunnelpassword | ||
curl -k https://ipv4.icanhazip.com | curl -k https://ipv4.icanhazip.com | ||
sudo nginx -t | sudo nginx -t | ||
| valign= | |valign='top'| | ||
sudo rm /etc/systemd/system/academia-lt.service | sudo rm /etc/systemd/system/academia-lt.service | ||
systemctl daemon-reload | systemctl daemon-reload | ||
| Line 148: | Line 145: | ||
|- | |- | ||
| | |valign='top'| | ||
sudo ufw allow 9000:9010/tcp | sudo ufw allow 9000:9010/tcp | ||
sudo systemctl status ufw | sudo systemctl status ufw | ||
sudo ufw status numbered | sudo ufw status numbered | ||
| valign= | |valign='top'| | ||
sudo ufw status verbose | sudo ufw status verbose | ||
sudo ufw enable | sudo ufw enable | ||
| Line 162: | Line 156: | ||
|- | |- | ||
| | |valign='top'| | ||
curl -k host.docker.internal:9000 | curl -k host.docker.internal:9000 | ||
curl -k host.docker.internal:9001 | curl -k host.docker.internal:9001 | ||
curl -k host.docker.internal:9002 | curl -k host.docker.internal:9002 | ||
| valign= | |valign='top'| | ||
curl -k host.docker.internal:9008 | curl -k host.docker.internal:9008 | ||
curl -k host.docker.internal:9009 | curl -k host.docker.internal:9009 | ||
| Line 176: | Line 167: | ||
|- | |- | ||
| | |valign='top'| | ||
systemctl list-units --type=service --state=running | systemctl list-units --type=service --state=running | ||
systemctl list-units --type=service --state=active | systemctl list-units --type=service --state=active | ||
systemctl list-units --type=service | systemctl list-units --type=service | ||
| valign= | |valign='top'| | ||
systemctl --type=service --state=running | systemctl --type=service --state=running | ||
systemctl --type=service --state=active | systemctl --type=service --state=active | ||
| Line 190: | Line 178: | ||
|- | |- | ||
| | |valign='top'| | ||
firewall-cmd --list-services | firewall-cmd --list-services | ||
netstat -ltup | netstat -ltup | ||
| valign= | |valign='top'| | ||
firewall-cmd --list-ports | firewall-cmd --list-ports | ||
ss -ltup | ss -ltup | ||
| Line 204: | Line 189: | ||
==References== | ==References== | ||
{| | {|class='wikitable mw-collapsible' style='width:100%' | ||
| valign= | !scope='col' style='text-align:left' colspan='3'| | ||
References | |||
|- | |||
|valign='top' style='width:34%'| | |||
* [https://github.com/localtunnel/go-localtunnel Localtunnel » SCM » GO Localtunnel] | * [https://github.com/localtunnel/go-localtunnel Localtunnel » SCM » GO Localtunnel] | ||
* [https://github.com/localtunnel/localtunnel Localtunnel » SCM » Localtunnel] | * [https://github.com/localtunnel/localtunnel Localtunnel » SCM » Localtunnel] | ||
| Line 213: | Line 201: | ||
* [https://theboroer.github.io/localtunnel-www/ Localtunnel » Quickstart] | * [https://theboroer.github.io/localtunnel-www/ Localtunnel » Quickstart] | ||
| valign= | |valign='top' style='width:33%'| | ||
| valign= | |valign='top' style='width:33%'| | ||
|- | |- | ||
|valign='top'| | |||
| valign= | |||
* [https://superuser.com/questions/513159/ Systemd » Safe Remove Services] | * [https://superuser.com/questions/513159/ Systemd » Safe Remove Services] | ||
* [[Apache/Proxy]] | * [[Apache/Proxy]] | ||
| Line 233: | Line 218: | ||
* [[ExtJS]] | * [[ExtJS]] | ||
| valign= | |valign='top'| | ||
* [[Academia JavaEE Workspace in Ubuntu]] | * [[Academia JavaEE Workspace in Ubuntu]] | ||
* [[Linux Virtual Display for iPad Pro]] | * [[Linux Virtual Display for iPad Pro]] | ||
| Line 243: | Line 228: | ||
* [[NodeJS]] | * [[NodeJS]] | ||
| valign= | |valign='top'| | ||
|} | |} | ||
Revision as of 14:44, 21 October 2025
source ~/.nvm/nvm.sh && nvm use node
npm install -g localtunnel
|
Systemd
|
Systemd » Service | |
|---|---|
cat << EOF | sudo tee /etc/systemd/system/chorke-academia-lt.service >/dev/null
[Unit]
Description=Chorke Academia Localtunnel Daemon
After=syslog.target network.target
[Service]
User=${USER}
Type=simple
Restart=on-failure
ExecStart=lt -p 80 -s chorke-academia
TimeoutStopSec=20
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
|
sudo systemctl daemon-reload
sudo systemctl enable --now chorke-academia-lt
systemctl status chorke-academia-lt
sudo systemctl disable --now chorke-academia-lt
systemctl status chorke-academia-lt
sudo systemctl restart chorke-academia-lt
systemctl status chorke-academia-lt
sudo systemctl stop chorke-academia-lt
systemctl status chorke-academia-lt
|
# nginx virtual host & reverse proxy config
cat << EOF | sudo tee /etc/nginx/sites-enabled/chorke-academia.loca.lt >/dev/null
server {
listen 2015;
listen [::]:2015;
index index.html;
server_name chorke-academia.loca.lt;
root /var/www/chorke-academia.loca.lt;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
location / {
proxy_pass http://127.0.0.1:3002;
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://127.0.0.1:3001;
}
access_log /var/log/nginx/chorke-academia.loca.lt/access.log;
error_log /var/log/nginx/chorke-academia.loca.lt/error.log info;
error_page 500 502 503 504 /500.html;
client_max_body_size 25M;
keepalive_timeout 10;
}
EOF
| |
# haproxy frontend and backend config
: <<'EOC'
frontend chorke
bind *:80
mode http
acl host-is-chorke-academia hdr(host) -i chorke-academia.loca.lt
use_backend chorke-academia if host-is-chorke-academia
backend chorke-academia
server nginx 127.0.0.1:2015
mode http
EOC
| |
Note: No need to update any /etc/hosts entries open https://chorke-academia.loca.lt &>/dev/null & open https://loca.lt/mytunnelpassword &>/dev/null & open https://ipv4.icanhazip.com &>/dev/null & | |
Playground
|
Playground | |
|---|---|
lt --host 127.0.0.1 --port 80 --subdomain academia-chorke lt --port 80 --subdomain academia-chorke |
lt -h 127.0.0.1 -p 80 -s academia-chorke lt -p 80 -s academia-chorke |
curl -k https://loca.lt/mytunnelpassword curl -k https://ipv4.icanhazip.com sudo nginx -t |
sudo rm /etc/systemd/system/academia-lt.service systemctl daemon-reload systemctl reset-failed |
sudo ufw allow 9000:9010/tcp sudo systemctl status ufw sudo ufw status numbered |
sudo ufw status verbose sudo ufw enable sudo ufw status |
curl -k host.docker.internal:9000 curl -k host.docker.internal:9001 curl -k host.docker.internal:9002 |
curl -k host.docker.internal:9008 curl -k host.docker.internal:9009 curl -k host.docker.internal:9010 |
systemctl list-units --type=service --state=running systemctl list-units --type=service --state=active systemctl list-units --type=service |
systemctl --type=service --state=running systemctl --type=service --state=active systemctl --type=service |
firewall-cmd --list-services netstat -ltup |
firewall-cmd --list-ports ss -ltup |
References
|
References | ||
|---|---|---|