Skip to content
This repository has been archived by the owner on Feb 27, 2021. It is now read-only.
/ stry Public archive

A mini self-hosted Archive Of Our Own, or a story host with tagging.

License

Notifications You must be signed in to change notification settings

Txuritan/stry

Repository files navigation

stry is a self hosted web server that is an interface for reading ePubs and other text content, specifically fanfiction. It allows you to have Archive of Our Own style tagging, along with its powerful search system all the while being enchanted by booru inspired tag search.

stry's home

Table of Contents

Features

  • Tagging system
  • Search
  • Importer from various sites
  • Single user only, made for the phone and Raspberry Pi
  • Keyboard controls (WIP)

Requirements

  • Rust
    • Specifically stable-1.45.2
  • cargo-make
  • C/C++ compiler
  • Optionally:
    • cross (If you are cross-compiling)
    • cURL
    • OpenSSL
    • SQLite

Building

Supported Platforms

stry support multiple different platforms through use of cross and native compilation.

This is a list of platforms that stry should be able to ran on. If you managed to get it running on a unlisted platform, either let me know or submit a pull-request.

  • AArch64
    • Samsung S7
  • ARMv7
    • Raspberry Pi 3 B+
  • Linux x64
    • Not Yet Tested
  • MacOSX
    • Not Yet Tested
  • Windows x64

NOTE: stry is primarily developed on a Windows machine so some platforms may not be tested.

With Bundled Libraries

To build stry using the bundled/static libraries is just a simple build command:

cargo make build-<PLATFORM>

With System Libraries

stry by default uses bundled/static versions of cURL, OpenSSL, and SQLite. While a bad idea generally, it does this to allow for easier building on the AArch64, ARMv7, and Windows targets.

To build stry without bundling you have to disable the default features:

cargo make build-<PLATFORM> --no-default-features

Usage

stry can be controlled by command line argument and/or a config file. The config options can be overridden by command line arguments, which allows you to quickly test features without editing a file.

Command Line

Most config file options can be controlled with command line argument but not all of them. This would be due to either not being implemented (yet), not being fully implemented, or I haven't figured out a way to implement them (yet).

See the stry --help for all options as it is undergoing work, and could change at any time.

Config

stry's config file is written in RON or Rusty Object Notation which is similar in structure to normal JSON. Have a look at is page as it may confuse you quite a bit.

By default stry will try to read its config (stry.ron) from the current directory, if it can't be found it will fallback onto its default built-in config. In the future stry will look for its config the normal UNIX and Windows config paths.

Have a look at stry.ron.example which shows the default built-in config along with comments describing parts of it.

Built With

stry, being written in Rust, uses a number of libraries from other developers. A list can be found in the Cargo.toml file but some notable libraries include:

Non managed, but bundled, libraries include:

Contributing

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

Thanks to Archive of Our Own for being a great inspiration for most of this project, along with being a goal to work towards.