Skip to content

Releases: andreimerlescu/apario-reader

Stable Release v1.0.0

22 Apr 03:19

Choose a tag to compare

Current binary running https://idoread.com/. This production host is on Rocky 9 linux being hosted with Digital Ocean.

DigitalOcean Referral Badge

Currently running on a Basic Machine Type with Premium AMD 8vCPU w/ 32GB of RAM and 160GB of HDD storage. In addition to this compute instance type, a block volume of 200GB was mounted to /idoread.com-data and the stargate-tmp directory was taken from the Apario Contribution output.

This executable relies on the config.yaml file to be properly defined. If you want to know what can be defined, you can run

./idoread --help

To download the 185GB of STAR GATE files that were compiled by me, use this magnet link to download it over bittorrent.

magnet:?xt=urn:btih:5ee779797eea1c607aba772f9014b797d4c0b9c5&dn=stargate-tmp&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A6969

You can also download the .torrent file below and download it yourself. Otherwise, you can recompile it yourself from scratch.

In order to use this binary in a production environment, you can choose from these configurables:

Usage of ./idoread.macos-amd64:
  -access-log string
        Default log file for GIN access logs. (default "logs/apario-reader-gin-2024-04-22-03-16-22.log")
  -ads-txt-path string
        Relative path to override the /ads.txt entry that helps fight fraud.
  -auth-max-failed-logins int
        maximum failed logins before the account is locked (default 17)
  -auto-tls
        Create a self-signed certificate on the fly and use it for serving the application over SSL.
  -buffer int
        Memory allocation for CSV buffer (min 168 * 1024 = 168KB) (default 131072)
  -cache-control-assets-seconds int
        seconds for http header Cache-Control max-age=3600 [default 1 hour] (default 3600)
  -cache-control-database-seconds int
        seconds for http header Cache-Control max-age=1209600 [default 14 days] (default 1209600)
  -company-name string
        name of the company that operates the service (default "Project Apario LLC")
  -concurrent-asset-requests int
        concurrent hits to /assets/* permitted (default 369)
  -concurrent-image-views int
        concurrent hits to /covers/<doc-id>/<pg-id>/<size>.jpg permitted (default 369)
  -concurrent-pdf-downloads int
        concurrent pdf downloads permitted (default 369)
  -concurrent-searches int
        maximum number of allowed concurrent searches before a waiting room appears (default 30)
  -config string
        Configuration file (default "config.yaml")
  -cookie-domain string
        domain to use for cookies (default "localhost:8080")
  -cors-allow-credentials
        Define the header value for Access-Control-Allow-Credentials
  -cors-allow-headers string
        Define the header value for Access-Control-Allow-Headers (default "Origin, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization")
  -cors-allow-methods string
        Define the header value for Access-Control-Allow-Methods (default "GET, POST, PUT, DELETE, OPTIONS")
  -cors-allow-origin string
        Define the header value for Access-Control-Allow-Origin (default "*")
  -csp-block-mixed-content
        Enable/Disable automatically blocking mixed HTTP and HTTPS content for requests via CSP (default true)
  -csp-child-unsafe-inline
        Enable/Disable Child SRC Unsafe Inline script execution via CSP (default true)
  -csp-domains-csv string
        List of CSP domains in CSV format
  -csp-report-uri string
        Path for content security policy violation reports to get logged (default "/security/csp-report")
  -csp-script-unsafe-eval
        Enable/Disable Unsafe Eval script execution via CSP
  -csp-script-unsafe-inline
        Enable/Disable Unsafe Inline script execution via CSP (default true)
  -csp-style-unsafe-inline
        Enable/Disable Style SRC Unsafe Inline script execution via CSP (default true)
  -csp-thirdparty-csv string
        List of third party domains in CSV format
  -csp-thirdparty-styles-csv string
        List of third party domains in CSV format
  -csp-upgrade-insecure
        Enable/Disable automagically upgrading HTTP to HTTPS for requests via CSP (default true)
  -csp-ws-domains-csv string
        List of Web Socket domains in CSV format
  -dark-mode-cookie-name string
        set the name of the cookie for dark mode (default "dark-mode")
  -database string
        apario-contribution rendered database directory path
  -database-concurrent-write-semaphore int
        concurrent disk write operations permitted to acquire a lock (default 17000)
  -decimal-symbol string
        symbol for decimals, default is . (default ",")
  -directories-limiter int
        concurrent directories to process out of the database (example: 369) (default 1)
  -directory-buffer int
        buffered channel size for pending directories from the database (3x --directories, example: 1107) (default 1)
  -enable-ads-txt
        Enable the endpoint for /ads.txt to be served. Required to use --ads-txt-path.
  -enable-cors
        Enable/Disable CORS (default true)
  -enable-csp
        Enable/Disable CSP (default true)
  -enable-middleware-asset-rate-limiting
        Toggle the tollbooth rate limiter for asset routes. (default true)
  -enable-middleware-download-rate-limiting
        Toggle the tollbooth rate limiter for downloads routes. (default true)
  -enable-middleware-ip-ban-list
        Enable the middleware for ip ban list. (default true)
  -enable-middleware-rate-limiting
        Toggle the tollbooth rate limiter for normal routes (default true)
  -enable-middleware-tls-handshake-check
        Toggle whether to return an error on misconfigured TLS requests (default true)
  -enable-ping
        Enable the /ping endpoint of your application to return PONG. (default true)
  -enable-security-txt
        Enable the endpoint for /security.txt to be served. Required to use --security-txt-path.
  -environment string
        environment label (default "development")
  -flush-database-watch-file string
        name of a file to touch in the root directory to force the app to delete the database cache and regenerate at boot (default "flush-db.next-boot")
  -force-https
        force-https when true will redirect any request into --unsecure-port to --secure-port using middleware
  -gin-log-stdout
        send gin logs to stdout (default true)
  -hits-file string
        File that contains a JSON encoded value of the hits on the site. (default "database/hits.db")
  -identifier-year-end-max int
        if > 0 then time.Now().Year() will be compared against this as a maximum cutoff year to accept a document record
  -identifier-year-offset int
        +/- years from current year to look for documents in the database from when they were generated (default 17)
  -identifier-year-start-min int
        if > 0 then time.Now().Year() will be compared against this as a minimum cutoff to accept a document record
  -info-log string
        File to save logs to. Default is logs/engine-YYYY-MM-DD-HH-MM-SS.log (default "logs/apario-reader-info-2024-04-22-03-16-22.log")
  -ip-ban-file string
        File that contains JSON encoded values for the IP Ban list. (default "database/ip.db")
  -ip-ban-list-sync-delay int
        seconds between synchronizing the ip ban list to disk (default 3600)
  -limit int
        general purpose semaphore limiter (default 1)
  -load-persistent-database
        boolean to load a persisted database from disk to memory
  -no-route-path-contains-watch-list string
        Pipe separated string of partial routes that should trigger an IP ban if too many are received.
  -no-route-path-watch-list string
        Pipe separated string of routes that should trigger an IP ban if too many are received.
  -online-refresh-delay-minutes int
        seconds to count active online users before offline cut-off. 369 seconds = 6 minutes 9 seconds = default (default 17)
  -pages-limiter int
        concurrent pages to process out of the database (default 1)
  -persist-runtime-database
        boolean to persist the runtime database to disk once loaded
  -persistent-database-path string
        path to runtime database file (default "database/app.db")
  -primary-domain string
        primary domain name used to access the service (default "projectapario.com")
  -product-name string
        name of the product that is running, used as the prefix to the log file and throughout the runtime of the app; this is its self label (default "apario-reader")
  -production-environment-label string
        default is production but useful when --environment value must be treated like production without using the label production. if you dont know how to use this flag, dont use it. (default "production")
  -rate-limit float
        Requests per second (0.5 = 1 request every 2 seconds). (default 12)
  -rate-limit-asset float
        Requests per second (0.5 = 1 request every 2 seconds). (default 36)
  -rate-limit-asset-cleanup int
        Seconds between rate limit cleanups. (default 17)
  -rate-limit-asset-ttl int
        Seconds a rate limit entry exists for before cleanup is triggered. (default 17)
  -rate-limit-cleanup int
        Seconds between rate limit cleanups. (default 3)
  -rate-limit-download float
        Requests per second (0.5 = 1 request every 2 seconds). (default 36)
  -rate-limit-download-cleanup int
        Seconds between rate limit cleanups. (default 17)
  -rate-limit-download-ttl int
        Seconds a rate limit entry exists for before cleanup is triggered. (default 17)
  -...
Read more

Launch of idoread.com

02 Jan 15:11

Choose a tag to compare

Current binary running https://idoread.com/. This production host is on Rocky 9 linux being hosted with Digital Ocean.

DigitalOcean Referral Badge

Currently running on a Basic Machine Type with Premium AMD 8vCPU w/ 32GB of RAM and 160GB of HDD storage. In addition to this compute instance type, a block volume of 200GB was mounted to /idoread.com-data and the stargate-tmp directory was taken from the Apario Contribution output.

This executable relies on the config.yaml file to be properly defined. If you want to know what can be defined, you can run

./idoread --help

To download the 185GB of STAR GATE files that were compiled by me, use this magnet link to download it over bittorrent.

magnet:?xt=urn:btih:5ee779797eea1c607aba772f9014b797d4c0b9c5&dn=stargate-tmp&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A6969

You can also download the .torrent file below and download it yourself. Otherwise, you can recompile it yourself from scratch.

In order to use this binary in a production environment, you can choose from these configurables:

Usage of ./idoread.macos-amd64:
  -access-log string
        Default log file for GIN access logs. (default "logs/gin.log")
  -auto-tls
        Create a self-signed certificate on the fly and use it for serving the application over SSL.
  -buffer int
        Memory allocation for CSV buffer (min 168 * 1024 = 168KB) (default 131072)
  -company-name string
        name of the company that operates the service (default "Project Apario LLC")
  -concurrent-asset-requests int
        concurrent hits to /assets/* permitted (default 369)
  -concurrent-image-views int
        concurrent hits to /covers/<doc-id>/<pg-id>/<size>.jpg permitted (default 369)
  -concurrent-pdf-downloads int
        concurrent pdf downloads permitted (default 369)
  -concurrent-searches int
        maximum number of allowed concurrent searches before a waiting room appears (default 30)
  -config string
        Configuration file (default "config.yaml")
  -cookie-domain string
        domain to use for cookies (default "localhost:8080")
  -cors-domains-csv string
        List of CORS domains in CSV format
  -csp-block-mixed-content
        Enable/Disable automatically blocking mixed HTTP and HTTPS content for requests via CSP (default true)
  -csp-child-unsafe-inline
        Enable/Disable Child SRC Unsafe Inline script execution via CSP (default true)
  -csp-domains-csv string
        List of CSP domains in CSV format
  -csp-report-uri string
        Path for content security policy violation reports to get logged (default "/security/csp-report")
  -csp-script-unsafe-eval
        Enable/Disable Unsafe Eval script execution via CSP
  -csp-script-unsafe-inline
        Enable/Disable Unsafe Inline script execution via CSP (default true)
  -csp-style-unsafe-inline
        Enable/Disable Style SRC Unsafe Inline script execution via CSP (default true)
  -csp-thirdparty-csv string
        List of third party domains in CSV format
  -csp-thirdparty-styles-csv string
        List of third party domains in CSV format
  -csp-upgrade-insecure
        Enable/Disable automagically upgrading HTTP to HTTPS for requests via CSP (default true)
  -csp-ws-domains-csv string
        List of Web Socket domains in CSV format
  -dark-mode-cookie-name string
        set the name of the cookie for dark mode (default "dark-mode")
  -database string
        apario-contribution rendered database directory path
  -decimal-symbol string
        symbol for decimals, default is . (default ",")
  -directories-limiter int
        concurrent directories to process out of the database (example: 369) (default 1)
  -directory-buffer int
        buffered channel size for pending directories from the database (3x --directories, example: 1107) (default 1)
  -enable-cors
        Enable/Disable CORS (default true)
  -enable-csp
        Enable/Disable CSP (default true)
  -error-log string
        File to write logs. (default "logs/go.log")
  -flush-database-watch-file string
        name of a file to touch in the root directory to force the app to delete the database cache and regenerate at boot (default "flush-db.next-boot")
  -limit int
        general purpose semaphore limiter (default 1)
  -load-persistent-database
        boolean to load a persisted database from disk to memory
  -log string
        File to save logs to. Default is logs/engine-YYYY-MM-DD-HH-MM-SS.log (default "logs/badbitchreads-2024-01-02-14-53-54.log")
  -pages-limiter int
        concurrent pages to process out of the database (default 1)
  -persist-runtime-database
        boolean to persist the runtime database to disk once loaded
  -persistent-database-path string
        path to runtime database file (default "database/app.db")
  -primary-domain string
        primary domain name used to access the service (default "projectapario.com")
  -rate-limit float
        Requests per second (0.5 = 1 request every 2 seconds). (default 12)
  -rate-limit-asset float
        Requests per second (0.5 = 1 request every 2 seconds). (default 36)
  -rate-limit-asset-cleanup int
        Seconds between rate limit cleanups. (default 17)
  -rate-limit-asset-ttl int
        Seconds a rate limit entry exists for before cleanup is triggered. (default 17)
  -rate-limit-cleanup int
        Seconds between rate limit cleanups. (default 3)
  -rate-limit-ttl int
        Seconds a rate limit entry exists for before cleanup is triggered. (default 3)
  -search-algorithm string
        values are wagner_fisher, ukkonen, jaro, jaro_winkler, soundex, hamming ; default is jaro_winkler (default "jaro_winkler")
  -search-concurrency-buffer int
        buffer channel size for search results ; default = 369 (default 369)
  -search-concurrency-limiter int
        concurrent keyword processing per search query ; default = 9 (default 9)
  -search-hamming-max-substitutions int
        maximum number of substitutions allowed for a word to be considered a match ; higher value = lower accuracy ; min = 1 ; default = 2 (default 2)
  -search-jaro-winkler-boost-threshold float
        weight applied to common prefixes in matched strings comparing dictionary terms, page word data, and search query params (default 0.7)
  -search-jaro-winkler-prefix-size int
        length of a jarrow weighted prefix string (default 3)
  -search-threshold-jaro float
        1.0 means exact match 0.0 means no match; default is 0.71 (default 0.71)
  -search-threshold-jaro-winkler float
        using the JaroWinkler method, define the threshold that is tolerated; default is 0.71 (default 0.71)
  -search-timeout-seconds int
        maximum seconds to spend on a search (default 30)
  -search-ukkonen-dcost int
        delete cost ; when removing a char to find a match ; increase the score by this number ; default = 1 (default 1)
  -search-ukkonen-icost int
        insert cost ; when adding a char to find a match ; increase the score by this number ; default = 1 (default 1)
  -search-ukkonen-max-substitutions int
        maximum number of substitutions allowed for a word to be considered a match ; higher value = lower accurate ; lower value = higher accuracy ; min = 0; default = 2 (default 2)
  -search-ukkonen-scost int
        substitution cost ; when replacing a char increase the score by this number ; default = 2 (default 2)
  -search-wagner-fischer-dcost int
        delete cost ; when removing a char to find a match ; increase the score by this number ; default = 1 (default 1)
  -search-wagner-fischer-icost int
        insert cost ; when adding a char to find a match ; increase the score by this number ; default = 1 (default 1)
  -search-wagner-fischer-max-substitutions int
        maximum number of substitutions allowed for a word to be considered a match ; higher value = lower accurate ; lower value = higher accuracy ; min = 0; default = 2 (default 2)
  -search-wagner-fischer-scost int
        substitution cost ; when replacing a char increase the score by this number ; default = 2 (default 2)
  -secure-port int
        Port to start the SSL version of the application. (default 8443)
  -session-store string
        where to store sessions - choices are cookie or redis ; cannot be cookie if use-cookies is false (default "cookie")
  -session-store-cookie-secret string
        a password to secure the cookies (default "secure-password-369-goes-here")
  -session-store-redis-connections int
        number of connections to maintain with redis between this application (default 10)
  -session-store-redis-database int
        the database ID in redis that sessions will be stored ; default is 3 (default 3)
  -session-store-redis-fallback-cookie
        fall back to use cookies if and when redis is temporarily unavailable
  -session-store-redis-password string
        password configured in redis that this app will use to communicate
  -session-store-redis-protocol string
        how the connection to redis is established - default is tcp (default "tcp")
  -session-store-redis-secret string
        a password to secure the redis sessions (default "secure-password-369-goes-here")
  -session-store-redis-servers string
        comma separated list of redis servers. example: '10.0.0.2:6379,10.0.0.3:6379,10.0.0.4:6379' default: 'localhost:6379' (default "localhost:6379")
  -session-store-redis-tls-certificate-path string
        where is the tls certificate for redis? (pem format required)
  -session-store-redis-tls-enabled
        is tls encryption enabled on the redis server? default is false
  ...
Read more