[GH-ISSUE #11] ARM Support #10

Closed
opened 2026-05-05 03:37:41 -06:00 by gitea-mirror · 20 comments
Owner

Originally created by @kjboa on GitHub (Nov 20, 2021).
Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/11

Looks great and very suitable for raspis. Any chance of arm (docker) builds?

Originally created by @kjboa on GitHub (Nov 20, 2021). Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/11 Looks great and very suitable for raspis. Any chance of arm (docker) builds?
gitea-mirror 2026-05-05 03:37:42 -06:00
Author
Owner

@binwiederhier commented on GitHub (Nov 20, 2021):

Oh yeah that should be super easy to do. I'll do it later today

<!-- gh-comment-id:974655937 --> @binwiederhier commented on GitHub (Nov 20, 2021): Oh yeah that should be super easy to do. I'll do it later today
Author
Owner

@kjboa commented on GitHub (Nov 20, 2021):

Wow that was quick 😃. Thanks a lot!

<!-- gh-comment-id:974656053 --> @kjboa commented on GitHub (Nov 20, 2021): Wow that was quick 😃. Thanks a lot!
Author
Owner

@binwiederhier commented on GitHub (Nov 20, 2021):

Well that's a little harder than I thought. The SQLite support needs cgo, which seems to be unhappy. I'll look later today though.

   • building binaries
      • building                  binary=/home/pheckel/Code/ntfy/dist/ntfy_linux_arm64/ntfy
      • building                  binary=/home/pheckel/Code/ntfy/dist/ntfy_linux_amd64/ntfy
      • building                  binary=/home/pheckel/Code/ntfy/dist/ntfy_linux_arm_6/ntfy
   ⨯ release failed after 24.76s error=failed to build for linux_arm64: exit status 2: # runtime/cgo
gcc_arm64.S: Assembler messages:
gcc_arm64.S:28: Error: no such instruction: `stp x29,x30,[sp,'
gcc_arm64.S:32: Error: too many memory references for `mov'
gcc_arm64.S:34: Error: no such instruction: `stp x19,x20,[sp,'
gcc_arm64.S:37: Error: no such instruction: `stp x21,x22,[sp,'
gcc_arm64.S:40: Error: no such instruction: `stp x23,x24,[sp,'
gcc_arm64.S:43: Error: no such instruction: `stp x25,x26,[sp,'
gcc_arm64.S:46: Error: no such instruction: `stp x27,x28,[sp,'
gcc_arm64.S:50: Error: too many memory references for `mov'
gcc_arm64.S:51: Error: too many memory references for `mov'
gcc_arm64.S:52: Error: too many memory references for `mov'
gcc_arm64.S:54: Error: no such instruction: `blr x20'
gcc_arm64.S:55: Error: no such instruction: `blr x19'
gcc_arm64.S:57: Error: no such instruction: `ldp x27,x28,[sp,'
gcc_arm64.S:60: Error: no such instruction: `ldp x25,x26,[sp,'
gcc_arm64.S:63: Error: no such instruction: `ldp x23,x24,[sp,'
gcc_arm64.S:66: Error: no such instruction: `ldp x21,x22,[sp,'
gcc_arm64.S:69: Error: no such instruction: `ldp x19,x20,[sp,'
gcc_arm64.S:72: Error: no such instruction: `ldp x29,x30,[sp],'

Makefile:113: recipe for target 'release-snapshot' failed
make: *** [release-snapshot] Error 1
<!-- gh-comment-id:974657405 --> @binwiederhier commented on GitHub (Nov 20, 2021): Well that's a little harder than I thought. The SQLite support needs cgo, which seems to be unhappy. I'll look later today though. ``` • writing config=dist/config.yaml • building binaries • building binary=/home/pheckel/Code/ntfy/dist/ntfy_linux_arm64/ntfy • building binary=/home/pheckel/Code/ntfy/dist/ntfy_linux_amd64/ntfy • building binary=/home/pheckel/Code/ntfy/dist/ntfy_linux_arm_6/ntfy ⨯ release failed after 24.76s error=failed to build for linux_arm64: exit status 2: # runtime/cgo gcc_arm64.S: Assembler messages: gcc_arm64.S:28: Error: no such instruction: `stp x29,x30,[sp,' gcc_arm64.S:32: Error: too many memory references for `mov' gcc_arm64.S:34: Error: no such instruction: `stp x19,x20,[sp,' gcc_arm64.S:37: Error: no such instruction: `stp x21,x22,[sp,' gcc_arm64.S:40: Error: no such instruction: `stp x23,x24,[sp,' gcc_arm64.S:43: Error: no such instruction: `stp x25,x26,[sp,' gcc_arm64.S:46: Error: no such instruction: `stp x27,x28,[sp,' gcc_arm64.S:50: Error: too many memory references for `mov' gcc_arm64.S:51: Error: too many memory references for `mov' gcc_arm64.S:52: Error: too many memory references for `mov' gcc_arm64.S:54: Error: no such instruction: `blr x20' gcc_arm64.S:55: Error: no such instruction: `blr x19' gcc_arm64.S:57: Error: no such instruction: `ldp x27,x28,[sp,' gcc_arm64.S:60: Error: no such instruction: `ldp x25,x26,[sp,' gcc_arm64.S:63: Error: no such instruction: `ldp x23,x24,[sp,' gcc_arm64.S:66: Error: no such instruction: `ldp x21,x22,[sp,' gcc_arm64.S:69: Error: no such instruction: `ldp x19,x20,[sp,' gcc_arm64.S:72: Error: no such instruction: `ldp x29,x30,[sp],' Makefile:113: recipe for target 'release-snapshot' failed make: *** [release-snapshot] Error 1 ```
Author
Owner

@binwiederhier commented on GitHub (Nov 20, 2021):

I think this is solvable: https://pkg.go.dev/github.com/mattn/go-sqlite3#readme-arm

I just don't have time right now. 👶 👩 👨 🐶 -> 🏖️, but I'll do it tonight.

<!-- gh-comment-id:974658071 --> @binwiederhier commented on GitHub (Nov 20, 2021): I think this is solvable: https://pkg.go.dev/github.com/mattn/go-sqlite3#readme-arm I just don't have time right now. :baby: :woman: :man: :dog: -> :beach_umbrella:, but I'll do it tonight.
Author
Owner

@binwiederhier commented on GitHub (Nov 20, 2021):

Alright I managed to build it. Let me know if this works for you, and then I'll close the ticket: https://github.com/binwiederhier/ntfy/releases/tag/v1.4.4

I built it for ARMv6/7 and arm64. I have no way of testing it though.

<!-- gh-comment-id:974709057 --> @binwiederhier commented on GitHub (Nov 20, 2021): ~Alright I managed to build it. Let me know if this works for you, and then I'll close the ticket: https://github.com/binwiederhier/ntfy/releases/tag/v1.4.4~ I built it for ARMv6/7 and arm64. I have no way of testing it though.
Author
Owner

@binwiederhier commented on GitHub (Nov 20, 2021):

I had issues uploading all artifacts to GitHub. The 1.4.5 worked. They are all identical to 1.4.3 except for the ARM build: https://github.com/binwiederhier/ntfy/releases/tag/v1.4.5

<!-- gh-comment-id:974710393 --> @binwiederhier commented on GitHub (Nov 20, 2021): ~I had issues uploading all artifacts to GitHub. The 1.4.5 worked. They are all identical to 1.4.3 except for the ARM build: https://github.com/binwiederhier/ntfy/releases/tag/v1.4.5~
Author
Owner

@binwiederhier commented on GitHub (Nov 21, 2021):

Okay, so this one really works: it's statically linked so it should really really work on ARM:
https://github.com/binwiederhier/ntfy/releases/tag/v1.4.6

Please let me know if you run into any troubles.

<!-- gh-comment-id:974739704 --> @binwiederhier commented on GitHub (Nov 21, 2021): Okay, so this one really works: it's statically linked so it should really really work on ARM: https://github.com/binwiederhier/ntfy/releases/tag/v1.4.6 Please let me know if you run into any troubles.
Author
Owner

@alceasan commented on GitHub (Nov 22, 2021):

I'd also like to test this on arm64, but 1.4.6 docker image it's only for amd64 ARCH in Docker Hub.

<!-- gh-comment-id:975423107 --> @alceasan commented on GitHub (Nov 22, 2021): I'd also like to test this on arm64, but 1.4.6 docker image it's only for amd64 ARCH in Docker Hub.
Author
Owner

@binwiederhier commented on GitHub (Nov 22, 2021):

I'll create a docker image for all archs later today. Shouldn't be hard hopefully.

<!-- gh-comment-id:975498662 --> @binwiederhier commented on GitHub (Nov 22, 2021): I'll create a docker image for all archs later today. Shouldn't be hard hopefully.
Author
Owner

@binwiederhier commented on GitHub (Nov 22, 2021):

@alceasan @kjboa I think this should do it: 2a05715107

Can you check and see if it works for you? Docker hub lists two architectures now: https://hub.docker.com/layers/binwiederhier/ntfy/latest/images/sha256-10bacf71a50a0db6b4f7f6d7f7a7390cfd310cc56e7294372ca85be1e3a2f03f?context=explore

I pulled both and the arm64 wouldn't run on my laptop, so that's as far as I can test it.

<!-- gh-comment-id:975668533 --> @binwiederhier commented on GitHub (Nov 22, 2021): @alceasan @kjboa I think this should do it: https://github.com/binwiederhier/ntfy/commit/2a057151070e31249b52e73cd76bcfd44e7e53fa Can you check and see if it works for you? Docker hub lists two architectures now: https://hub.docker.com/layers/binwiederhier/ntfy/latest/images/sha256-10bacf71a50a0db6b4f7f6d7f7a7390cfd310cc56e7294372ca85be1e3a2f03f?context=explore I pulled both and the arm64 wouldn't run on my laptop, so that's as far as I can test it.
Author
Owner

@kjboa commented on GitHub (Nov 22, 2021):

I already tested the .Deb and works great. Gonna test docker soon. Thanks 👍

<!-- gh-comment-id:975676037 --> @kjboa commented on GitHub (Nov 22, 2021): I already tested the .Deb and works great. Gonna test docker soon. Thanks 👍
Author
Owner

@binwiederhier commented on GitHub (Nov 22, 2021):

While I have some ARM folks: I know nothing about ARM. Is ARMv6/v7 still used? Do I still need to build for that? Or is it all ARM64v8 now?

<!-- gh-comment-id:975693731 --> @binwiederhier commented on GitHub (Nov 22, 2021): While I have some ARM folks: I know nothing about ARM. Is ARMv6/v7 still used? Do I still need to build for that? Or is it all ARM64v8 now?
Author
Owner

@kjboa commented on GitHub (Nov 22, 2021):

Armv7 is used pretty widely. Lots of Single Board Computers run on it. Armv6 is used not so much, armv8/arm64 is the main arm plattform

<!-- gh-comment-id:975783526 --> @kjboa commented on GitHub (Nov 22, 2021): Armv7 is used pretty widely. Lots of Single Board Computers run on it. Armv6 is used not so much, armv8/arm64 is the main arm plattform
Author
Owner

@rootinchase commented on GitHub (Dec 3, 2021):

Sorry to reopen a closed issue, but could you add the arm releases to your repository? I'm running ntfy on my rpi3 with debian, and there is no support for it in the repository. Looking at the inRelease file, your repo only supports amd64.

<!-- gh-comment-id:985252376 --> @rootinchase commented on GitHub (Dec 3, 2021): Sorry to reopen a closed issue, but could you add the arm releases to your repository? I'm running ntfy on my rpi3 with debian, and there is no support for it in the repository. Looking at the inRelease file, your repo only supports amd64.
Author
Owner

@binwiederhier commented on GitHub (Dec 3, 2021):

Oh of course no problemo. I'll do it today.

<!-- gh-comment-id:985446393 --> @binwiederhier commented on GitHub (Dec 3, 2021): Oh of course no problemo. I'll do it today.
Author
Owner

@binwiederhier commented on GitHub (Dec 3, 2021):

@rootinchase It's done. Now I just have to remember to add it every time I publish. The repo stuff is horrible manual still..

Let me know if it works/doesn't work and close the issue if it does.

<!-- gh-comment-id:985528222 --> @binwiederhier commented on GitHub (Dec 3, 2021): @rootinchase It's done. Now I just have to remember to add it every time I publish. The repo stuff is horrible manual still.. Let me know if it works/doesn't work and close the issue if it does.
Author
Owner

@rootinchase commented on GitHub (Dec 4, 2021):

root@PiMachine:~# apt install ntfy
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  ntfy
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 6621 kB of archives.
After this operation, 16.3 MB of additional disk space will be used.
Get:1 https://archive.heckel.io/apt debian/main arm64 ntfy arm64 1.5.0 [6621 kB]
Fetched 6621 kB in 9s (700 kB/s)                                                                                                                                                               
Selecting previously unselected package ntfy.
(Reading database ... 23060 files and directories currently installed.)
Preparing to unpack .../archives/ntfy_1.5.0_arm64.deb ...
Unpacking ntfy (1.5.0) ...
Setting up ntfy (1.5.0) ...

I can confirm that it's working for arm64

<!-- gh-comment-id:985957222 --> @rootinchase commented on GitHub (Dec 4, 2021): ``` root@PiMachine:~# apt install ntfy Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: ntfy 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 6621 kB of archives. After this operation, 16.3 MB of additional disk space will be used. Get:1 https://archive.heckel.io/apt debian/main arm64 ntfy arm64 1.5.0 [6621 kB] Fetched 6621 kB in 9s (700 kB/s) Selecting previously unselected package ntfy. (Reading database ... 23060 files and directories currently installed.) Preparing to unpack .../archives/ntfy_1.5.0_arm64.deb ... Unpacking ntfy (1.5.0) ... Setting up ntfy (1.5.0) ... ``` I can confirm that it's working for arm64
Author
Owner

@binwiederhier commented on GitHub (Dec 4, 2021):

Great 👍

<!-- gh-comment-id:985962187 --> @binwiederhier commented on GitHub (Dec 4, 2021): Great 👍
Author
Owner

@PepeTux commented on GitHub (Jan 30, 2025):

Running ntfy server on a Orange Pi Zero 2W (4x ARM Cortex A53, 4 GB RAM, HDD 32GB micro SD Card).
Ubuntu 22.04.5 LTS aarch64
Linux orangepizero2w 6.1.31-sun50iw9 #1.0.2 SMP Thu Jul 11 17:24:28 CST 2024 aarch64 aarch64 aarch64 GNU/Linux

Image

Image

Image

Image

Image

And expose it to internet using ngrok, another great tool.

Thanks a lot 😍

<!-- gh-comment-id:2625414792 --> @PepeTux commented on GitHub (Jan 30, 2025): Running ntfy server on a Orange Pi Zero 2W (4x ARM Cortex A53, 4 GB RAM, HDD 32GB micro SD Card). Ubuntu 22.04.5 LTS aarch64 Linux orangepizero2w 6.1.31-sun50iw9 #1.0.2 SMP Thu Jul 11 17:24:28 CST 2024 aarch64 aarch64 aarch64 GNU/Linux ![Image](https://github.com/user-attachments/assets/01ee864c-8108-4a8c-9fc1-4e37827db1c7) ![Image](https://github.com/user-attachments/assets/0d96d04f-c1ef-4a5e-9f30-c4b3cc902a12) ![Image](https://github.com/user-attachments/assets/1741ea5e-25e2-45a0-bf15-79bcd1f12e7d) ![Image](https://github.com/user-attachments/assets/53e24d72-3163-4cc6-9027-9d3af1ef82b3) ![Image](https://github.com/user-attachments/assets/6cf7e263-7b44-4df2-ab79-47c6601829c0) And expose it to internet using ngrok, another great tool. Thanks a lot 😍
Author
Owner

@PepeTux commented on GitHub (Jan 30, 2025):

Note: Lightdm and xfce are disabled (headless server) to improve performance.

<!-- gh-comment-id:2625421771 --> @PepeTux commented on GitHub (Jan 30, 2025): Note: Lightdm and xfce are disabled (headless server) to improve performance.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/ntfy#10
No description provided.