~zethra/stargazer

A Gemini Server

4dc46d5 tests: added missing dir to git

~zethra pushed to ~zethra/stargazer git

3 days ago

#6 Sort Directory Listing

~zethra commented on stargazer todo

3 days ago

#stargazer

stargazer is a concurrent Gemini server using async io with no runtime dependencies (if compiled with musl libc). Heavily inspired by gmnisrv.

Project page on Gemini

#Features

  • Static file serving
  • Automatic cert generation
  • CGI
    • Mostly Jetforce compatible
  • SCGI
  • Multiple domains and routes
    • Regex rewrites
  • Development mode

#Installation

There are various installation methods, take your pick.

#Arch Package

yay -S stargazer-gmi

#Container

docker pull zethra/stargazer Docker Hub

#Download Pre-built

You can download prebuilt Linux binaries from the release page . The bundle contain a static binary, example config, and man pages. It should work on any distro.

#From crates.io

cargo install stargazer

#Build from Source

Dependencies:

  • A POSIX system
  • Rust compiler 1.45.2 and cargo
  • scdoc (optional) to generate man pages
  • strip (optional) (from binutils) to reduce the binary size
  • Python 3 (testing)
  • Python 3 cryptography (testing)
git clone https://git.sr.ht/~zethra/stargazer && cg stargazer
./scripts/build
# As root
./scripts/install --prefix=/usr

#Supported Platforms

stargazer is targeted at Linux. It should work on MacOS, Windows, and other platforms that it's dependencies support but it's not currently tested on those platforms.

#Configuration

By default stargazer read the config from /etc/stargazer.ini, but this can be changed by with the -C flag. A sample config is included in the project root and is installed to /usr/share/stargazer/config.ini.

#Usage

See stargazer(1) for cli options and stargazer.ini(5) for config instructions.

#Security

Stargazer is alpha software and as such should be assumed to be insecure. As such, running stargazer as an unprivileged user or in a container is probably a good idea. At this stage of development only the latest release of stargazer is supported so please only run the latest version. Security fixes will not be back ported to old releases.

#Know security issues

#FIXED Root escape - pre 0.4.0

Stargazer would serve files from anywhere on the file system if a path starting with // was requested.

#Copying

All of the source code and resulting binaries of stargazer is licensed under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE Version 3.

#Contributing

#Help Wanted with Packaging

If you can package stargazer please do! I currently maintain an Arch package but if you can package for any other distro please do and let me know.

Please send any and all patches, bugs, and questions to the stargazer mailing list ~zethra/stargazer@lists.sr.ht or submit a ticket to the bug tracker if you feel so inclined todo.sr.ht/~zethra/stargazer.