toddsundsted / ktistec

Single user ActivityPub (https://www.w3.org/TR/activitypub/) server.
GNU Affero General Public License v3.0
367 stars 21 forks source link

Providing pre-compiled binaries #5

Open paulocoghi opened 2 years ago

paulocoghi commented 2 years ago

Hello, Todd!

Since Cyrtal can compile to the most platforms, including Linux, Mac and Windows, I would like to suggest to provide pre-build ktistec binaries to the final users.

This solves two problems:

paulocoghi commented 2 years ago

This can also be made automatically on every new release (so you don't have to manually compile each time), by using Github Actions and following the official guide.

toddsundsted commented 2 years ago

@paulocoghi solid suggestion!

i do have a dockerized build on docker hub: https://hub.docker.com/r/toddsundsted/ktistec

the hurdle with osx and windows is creating and distributing the builds. with osx i might be able to leverage homebrew or something similar. but i don't have to a windows machine or development environment. my preference would probably be nix, but that might be even more restrictive. :-)

toddsundsted commented 2 years ago

ah, yeah i'll look into github actions. not sure how far i can get on windows, however, without my own hardware.

paulocoghi commented 2 years ago

Regarding Docker, I believe providing the compiled binary is way better, easier and sufficient than providing a docker option.

For me, in my humble view and experience, Docker increases the complexity.

vassilevsky commented 2 years ago

I tried compiling ktistec on a VDS with 1 gigabyte of RAM and failed :(

# crystal build src/ktistec/server.cr
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 16777216 bytes
GC Warning: Failed to expand heap by 262144 bytes
GC Warning: Out of Memory! Heap size: 705 MiB. Returning NULL!
Invalid memory access (signal 11) at address 0x4
[0xeb6876] ???
[0xeb683d] ???
[0x3753238] ???

I wonder how much memory it needs.

Also if I compile it in a Docker container on my Mac, which files should I copy to the VDS to run it.