πŸ’¦Developers

Use Inuva for remote development with the power of a Linux server. Easily integrate with VS Code or JetBrains IDEs.

Why choose Inuva over GitHub CodeSpaces?

Inuva is created to help developers get their tasks done more quickly and efficiently. Inuva achieves this by providing powerful hardware, a fully persisted operating system, full control over the root account and full access to the firewall. You can even run Docker without nested configurations.

Customize your Inuva OS as you likeβ€”set up daemons with systemd, manage cron jobs, or configure multi-user access. Develop from any device, secure your sensitive data in the cloud, and save your device's battery by offloading computations.

How it works?

You can add your public SSH key to ~/.ssh/authorized_keys for password-free login. Only you have the private key, ensuring secure authentication.

Troubleshooting

  • DNS Spoofing error: New IPv4 addresses are assigned upon each wake-up, which SSH might flag as suspicious. This is expected behaviour due to dynamic IP allocation and usually not a cause for concern. Inuva runs on dual-stack, supporting both IPv6 and IPv4. IPv6 addresses are stable across sessions and are generally the preferred way to connect.

  • Remote host identification has changed: SSH associates a host identifier to each remote connection. A change in IPv4 can result in a new host identifier, triggering this warning. This is a by-product of the dynamic IP allocation and not usually an issue.

You can disable these error messages by configuring the following in ~/.ssh/config and restarting the SSH daemon with sudo systemctl restart sshd

Host <yourname>.inuva.me
    UseDNS no
    CheckHostIP no

How do I connect to my website/ service/ api?

VS Code comes with a service that allows you to access your application over a secure website. Simply start your service and a popup will appear on the bottom right hand corner with a message to open your port. When you click on this, the browser will open a unique link to your website. This website is secured through your GitHub account, nobody else can access this. Remember this when sharing links.

This service is great however I have experienced some limitations/ pitfalls:

  • The forwarded link is dynamic, you cannot rely on it to be the same link across multiple sessions. It won't change every time you forward a request but it can happen from time to time. This link is not very clear so it can be hard to debug why your cookies aren't set for example.

  • Upload size limit: I tried to upload a 2GB file and it rejected this with a 413 Content Too Large error.

  • Working with 0Auth can be a pain in the ass. The forwarded links can be dynamic and the URL did change for me in between sessions. This caused my 0Auth to fail and I spent 2 hours debugging why because the URLs look alike.

How is Inuva going to fix this?

The firewall interface allows you to open port that can be accessed at https://<username>.inuva.me:<port>. Keep in mind it's public; apply app authentication before opening ports.

Batteries included ⚑

Inuva comes with a couple of batteries includes. This is because the Inuva system relies on these services. That also means you cannot delete (or modify) these services.

  • Nginx: you are allowed to add new server directives. It is not recommended to make changes to nginx.conf or inuva.conf files. These can be overwritten.

  • Node 20.4.0: we included NVM to make it easier to change node versions. You can change your preferred node version to whatever you like. Just don't delete Node version 20.4 or the versions specified in /etc/systemd/system/inuva.service

  • Systemd: it's not recommended to change the /etc/systemd/system/inuva.service . These can be overwritten or changed through updates.

  • Python3, make, g++: these 3 are used to make the upcoming web terminal function.

  • ZSH: this shell is included and set as the default shell to make terminal life a bit easier. You can configure the shell how you like.

  • Certbot: this program handles the TLS certificates for you Inuva desktop. You can use this to request custom domain names.

  • Ubuntu 22: the base operating system. You can install programs through "apt"

Warning: if you change .zshrc make sure to include the current contents of the .zshrc. Inuva uses this environment to deploy updates.

Do not delete or overwrite the file /etc/crontabthis is crucial to receive updates.

Troubleshooting

  • I can't reach my Inuva desktop Chances are that the machine went into hibernation. The machine will automatically go into hibernation when the machine detected low internet activity in the last 20 minutes. If you don't see the Inuva login page, you will have to manually navigate to https://login.inuva.me and log in again.

  • What's my/ root password Inuva operates passwordless Use sudo for root and SSH keys for account access.

Last updated