Coder Social home page Coder Social logo

txuritan / stry Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 0.0 2.92 MB

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

License: MIT License

Rust 94.82% CSS 0.37% JavaScript 0.97% HTML 3.64% FreeMarker 0.20%
self-hosted archive-of-our-own fanfiction armv7 linux windows raspberry-pi sqlite postgresql ao3

stry's Introduction

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.

stry's People

Contributors

txuritan avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.