Add Arch Linux (AUR) install instructions #124

Closed
opened 2026-10-05 01:58:25 +02:00 by adam · 12 comments
Owner

I've published an AUR package for RemoteTerm: https://aur.archlinux.org/packages/remoteterm-meshcore

It builds the frontend from source with npm, creates a Python venv with all dependencies via uv, and installs a systemd service with hardening. Runs as a dedicated remoteterm user, stores the database in /var/lib/remoteterm-meshcore/.

Would be nice to mention it in the README alongside the existing Clone and Docker install paths. I have a small PR ready that adds an "Install Path 3" section.

I'm happy to transfer ownership of the AUR package if you'd like to maintain it directly. A GitHub Action like KSXGitHub/github-actions-deploy-aur can automate updates on each release. You'd keep the PKGBUILD in your repo (e.g. pkg/aur/) and it gets pushed to AUR automatically when you tag a new version. Just needs an AUR account, an SSH keypair, and three GitHub secrets.

I've published an AUR package for RemoteTerm: https://aur.archlinux.org/packages/remoteterm-meshcore It builds the frontend from source with npm, creates a Python venv with all dependencies via uv, and installs a systemd service with hardening. Runs as a dedicated `remoteterm` user, stores the database in `/var/lib/remoteterm-meshcore/`. Would be nice to mention it in the README alongside the existing Clone and Docker install paths. I have a small PR ready that adds an "Install Path 3" section. I'm happy to transfer ownership of the AUR package if you'd like to maintain it directly. A GitHub Action like `KSXGitHub/github-actions-deploy-aur` can automate updates on each release. You'd keep the PKGBUILD in your repo (e.g. `pkg/aur/`) and it gets pushed to AUR automatically when you tag a new version. Just needs an AUR account, an SSH keypair, and three GitHub secrets. <!-- github-sync-id:4228831888 -->
adam closed this issue 2026-10-05 01:58:25 +02:00
Author
Owner

Hello! What a fun thing; I am not an arch user but I do love arch users haha. Thanks for the suggestion :)

I would love to take over maintaining; thanks for offering. I completely trust your intentions, but will wait on merging in the README.md addition until I've taken over maintainership -- the security engineer in my doesn't want to endorse packages as my own until I have control over what's published. I can set up the deployment actions and get the README.md addition in once I've got privs for package. I'm jackkingsman on AUR.

Hello! What a fun thing; I am not an arch user but I do love arch users haha. Thanks for the suggestion :) I would love to take over maintaining; thanks for offering. I completely trust your intentions, but will wait on merging in the README.md addition until I've taken over maintainership -- the security engineer in my doesn't want to endorse packages as my own until I have control over what's published. I can set up the deployment actions and get the README.md addition in once I've got privs for package. I'm `jackkingsman` on AUR. <!-- github-comment-id:4218810180 -->
Author
Owner

Very nice, I totally feel that. I have entered you as a co-maintainer and made an orphan request to the AUR maintainers so they reassign it to your user jackkingsman.

If they take to long, we could figure out a time when I press disown, and you would take over this package, but if somebody really wants to they could steal it.

Very nice, I totally feel that. I have entered you as a co-maintainer and made an orphan request to the AUR maintainers so they reassign it to your user `jackkingsman`. If they take to long, we could figure out a time when I press disown, and you would take over this package, but if somebody really wants to they could steal it. <!-- github-comment-id:4219205762 -->
Author
Owner

I see myself as co-maintainer; I believe that if you abandon it now, it will turn over to me as the primary maintainer :)

I see myself as co-maintainer; I believe that if you abandon it now, it will turn over to me as the primary maintainer :) <!-- github-comment-id:4221202326 -->
Author
Owner

Nice, that actually worked, try to cancel the orphan request just in case.
Thank you for your efforts. This is the best MeshCore client <3

Nice, that actually worked, try to cancel the orphan request just in case. Thank you for your efforts. This is the best MeshCore client <3 <!-- github-comment-id:4221272903 -->
Author
Owner

Hm looks like I can't; oh well.

I've pushed some additional commits on that PR; lemme know if you're happy and I'll merge. I'm sure it'll break a few times before I get the hang of cutting releases but I can push some patch commits as I try it.

Hm looks like I can't; oh well. I've pushed some additional commits on that PR; lemme know if you're happy and I'll merge. I'm sure it'll break a few times before I get the hang of cutting releases but I can push some patch commits as I try it. <!-- github-comment-id:4221709522 -->
Author
Owner

Looks good, I think the way I implemented user and group creation is not optimal in remoteterm-meshcore.install
It is not deterministic and would leave the user and group after package deinstallation.

This might be the better approach:
https://aur.archlinux.org/cgit/aur.git/tree/mautrix-slack.tmpfiles?h=mautrix-slack
https://aur.archlinux.org/cgit/aur.git/tree/semaphore.sysusers.d?h=semaphore-bin

Looks good, I think the way I implemented user and group creation is not optimal in `remoteterm-meshcore.install` It is not deterministic and would leave the user and group after package deinstallation. This might be the better approach: https://aur.archlinux.org/cgit/aur.git/tree/mautrix-slack.tmpfiles?h=mautrix-slack https://aur.archlinux.org/cgit/aur.git/tree/semaphore.sysusers.d?h=semaphore-bin <!-- github-comment-id:4225384944 -->
Author
Owner

Pushed a commit to #172 that replaces the getent/useradd hooks with sysusers.d and tmpfiles.d as discussed above.

  • remoteterm-meshcore.sysusers creates the user+group
  • remoteterm-meshcore.tmpfiles creates /var/lib/remoteterm-meshcore
  • pre_install/pre_upgrade removed from .install
  • Workflow, PKGBUILD, and test script updated to include both files
Pushed a commit to #172 that replaces the getent/useradd hooks with sysusers.d and tmpfiles.d as discussed above. - `remoteterm-meshcore.sysusers` creates the user+group - `remoteterm-meshcore.tmpfiles` creates `/var/lib/remoteterm-meshcore` - `pre_install`/`pre_upgrade` removed from `.install` - Workflow, PKGBUILD, and test script updated to include both files <!-- github-comment-id:4225538560 -->
Author
Owner

alright yolo; let's do it.

alright yolo; let's do it. <!-- github-comment-id:4225680865 -->
Author
Owner

Running through the ultracomplete test suite with a physical radio and real traffic for a release, then will cut a release and we'll see how we go.

Running through the ultracomplete test suite with a physical radio and real traffic for a release, then will cut a release and we'll see how we go. <!-- github-comment-id:4225718499 -->
Author
Owner

Let's go :D

Let's go :D <!-- github-comment-id:4225722517 -->
Author
Owner
Image
<img width="574" height="407" alt="Image" src="https://github.com/user-attachments/assets/03ca4e4c-86d6-4b83-beff-26a3aa041b33" /> <!-- github-comment-id:4225861246 -->
Author
Owner

Confirmed it boots up with a radio in a docker arch container 😄

Confirmed it boots up with a radio in a docker arch container 😄 <!-- github-comment-id:4225916377 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/Remote-Terminal-for-MeshCore#124