Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

armv7 support #99

Closed
kn100 opened this issue Dec 30, 2022 · 10 comments
Closed

armv7 support #99

kn100 opened this issue Dec 30, 2022 · 10 comments
Labels
help wanted Extra attention is needed

Comments

@kn100
Copy link

kn100 commented Dec 30, 2022

It seems that what's available on Docker Hub are amd64 and arm64 images, but sadly no armv7 image. I'd love to be able to run actual-server on some older armv7 boards I have, and was wondering if support could be added.

@vonahnen
Copy link

vonahnen commented Jan 5, 2023

@kn100 I was able to get this running on a Raspberry Pi with ARMv7 using my changes here: vonahnen@bf154da

Here's my cat /proc/cpuinfo output.

$ cat /proc/cpuinfo
processor	: 0
model name	: ARMv7 Processor rev 3 (v7l)
BogoMIPS	: 108.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3

processor	: 1
model name	: ARMv7 Processor rev 3 (v7l)
BogoMIPS	: 108.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3

processor	: 2
model name	: ARMv7 Processor rev 3 (v7l)
BogoMIPS	: 108.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3

processor	: 3
model name	: ARMv7 Processor rev 3 (v7l)
BogoMIPS	: 108.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3

...

@MatissJanis MatissJanis added the help wanted Extra attention is needed label Jan 27, 2023
@urjeetpatel
Copy link
Contributor

I think the main question here is if ARMv7 is accepted as a supported platform. If so, then the pipeline should be updated to add this target to docker.

If not, then end users should use the workaround above as an unsupported feature.

@jayket
Copy link

jayket commented Feb 11, 2023

I can tell you that it will run on a raspberry pi which is ARMv7. You have to download the image from docker locally and build it locally as well. Im running mine with little to no issues but be advised it isn't the snappiest. I just used these instructions and got it up and running in no time.
git clone https://github.com/actualbudget/actual-server.git cd actual-server docker build -t actual-server . docker run -p 5006:5006 actual-server
I hope that helps.

@jamesmortensen
Copy link
Contributor

jamesmortensen commented Feb 17, 2023

@jayket @vonahnen can you confirm that it runs using the existing Dockerfile and Dockerfile.alpine images? @jayket it sounds like you already succeeded with the Dockerfile, but what about the Dockerfile.alpine?

Here's the instructions to build and run for Alpine, assuming you're doing this on a Raspberry Pi:

git clone https://github.com/actualbudget/actual-server.git
cd actual-server
docker build -t actual-server -f Dockerfile.alpine .
docker run -p 5006:5006 actual-server

In the pull-request #141, I modified the docker workflow to include building for the target linux/arm/v7. If you confirm it works, then we can have a maintainer review and possibly merge the changes so that armv7 is included in Docker Hub.

@jayket
Copy link

jayket commented Feb 22, 2023 via email

@jayket
Copy link

jayket commented Feb 22, 2023 via email

@danielnbalasoiu
Copy link

@jayket

I don't notice much speed difference between the original and alpine versions. They both seems to run smoothly once up and running.

As far as I know, Actual runs locally and then it syncs the changes which makes it very fast and it's hard to tell be difference.

Some of the benefits of running the alpine container are:

  • More secure: fewer libraries mean smaller attack surface
  • smaller container size which translates into faster download time, less bandwidth usage

@urjeetpatel
Copy link
Contributor

To be fair the is nothing in the code that relies on native binaries for anything. the server itself is pretty straightforward as far as sync goes and the arm v7 support should work fine.

the conversion of the image to alpine should be a separate discussion / issue IMHO.

j-f1 added a commit that referenced this issue Mar 30, 2023
Users in #99 report that Actual in Docker runs on armv7 platforms,
although a bit sluggish. I confirmed that the base images for Debian and
Alpine support the linux/arm/v7 target and have added them to the
platform list in the GitHub Actions workflow.

At least one user confirms it works with the bullseye default
`Dockerfile`, but before merging it would be great if someone can
confirm it works with the Dockerfile.alpine image:

```
git clone https://github.com/jamesmortensen/actual-server.git
cd actual-server
git checkout armv7-image
docker build -t actual-server -f Dockerfile.alpine .
docker run -p 5006:5006 actual-server
```

---------

Co-authored-by: Jed Fox <git@jedfox.com>
@MatissJanis
Copy link
Member

Seems to me this is solved after merging #141

Can someone verify and let me know?

@MatissJanis
Copy link
Member

Closing for now. Please let me know if this is not yet fully addressed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

7 participants