diff --git a/README.md b/README.md index 7100fb3..1bcae36 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ The easiest to get started is by using the following cloud development environme * Open in [Gitpod workspace](https://gitpod.io/#https://github.com/spotsnel/cockpit-tailscale) * Open in [CodeSandbox](https://codesandbox.io/p/github/spotsnel/cockpit-tailscale) -or you can either use a local `devsys`/`almsys`, like published here: +or you can either use a local `devsys`/`almsys`, as published here: * https://github.com/gbraad-devenv/fedora * https://github.com/gbraad-devenv/almalinux @@ -30,22 +30,22 @@ or you can either use a local `devsys`/`almsys`, like published here: Install the following packages to develop and build: -``` +```bash $ sudo dnf install -y make npm ``` and to make the RPM you need: -``` +```bash $ sudo dnf install -y rpm-build gettext libappstream-glib ``` #### Cockpit user -If you want to run cockpit, you need a user with a password: +If you want to run Cockpit, you need a user with a password: -``` +```bash $ sudo dnf install -y passwd $ sudo passwd gbraad ``` @@ -56,17 +56,17 @@ After which you can use this user to log in to Cockpit. ### Build To perform a development build: -``` +```bash $ npm run dev ```` To perform a production build: -``` +```bash $ npm run build ``` For the RPM package: -``` +```bash $ npm run rpm ``` @@ -77,31 +77,50 @@ After the build, copy contents to `/usr/share/cockpit/tailscale`, `/usr/share/lo #### Link development -For convenience, you can also create a symlink to `~/.local/share/cockpit/tailscale` to `$PWD/dist`. However, you will need to logout/login because Cockpit caches the page and assets. +For convenience, you can also create a symlink to `~/.local/share/cockpit/tailscale` to `$PWD/dist`. However, you will need to log out and log in because Cockpit caches the page and assets. To create a link: -``` + +```bash $ npm run link ``` And to remove: -``` + +```bash $ npm run unlink ``` #### Run Cockpit + You can run Cockpit in a container or remote development environment with the following command: -``` + +```bash $ npm run cockpit ``` You will need to use an account with a password to log in. -### Tailscale systemd image +#### Origins -For example, on an instance of [spotsnel/tailscale-systemd](https://github.com/spotsnel/tailscale-systemd): +If the login fails and you see `bad Origin` errors, you need to modify the `/etc/cockpit/cockpit.conf` file and add something like: + +```ini +[WebService] +Origins=https://jqgnyj-9090.csb.app ``` + +The example shows CodeSandbox. For Gitpod this might look like this: +```ini +[WebService] +Origins=https://9090-spotsnel-cockpittailsca-57e5sbbb0zb.ws-us100.gitpod.io +``` + + +### Tailscale systemd image +You can run this as part of [spotsnel/tailscale-systemd](https://github.com/spotsnel/tailscale-systemd) container image to deploy this inside a Podman machine or similar: +```bash $ tailscale ssh podmandesktop / podman exec -it tailscale-system bash # dnf install -y cockpit passwd # systemctl enable --now cockpit.socket @@ -112,23 +131,36 @@ $ tailscale ssh podmandesktop / podman exec -it tailscale-system bash # passwd root # tailscale up --ssh ``` + Now you can access the remote cockpit from another host by 'add new host'. Note: remote hosts get authenticated over SSH. If you have conflicts, like on WSL, you can serve on `localhost` instead. `/etc/systemd/system/cockpit.socket.d/listen.conf` -``` +```ini [Socket] ListenStream= ListenStream=127.0.0.1:9090 FreeBind=yes ``` -``` +Note: the blank `ListenStream` is intentional as it resets the parameter. + +Now set up the forward from the Tailscale client to open port `9090`: + +```bash # tailscale serve tcp:9090 tcp://localhost:9090 # systemctl daemon-reload # systemctl restart cockpit.socket ``` +Now you can navigate to the Tailscale IP: +``` +# tailscale ip -4 +100.113.113.114 +``` + +Open https://100.113.113.114:9090. + Authors -------