Releases: andreimerlescu/apario-reader
Stable Release v1.0.0
Current binary running https://idoread.com/. This production host is on Rocky 9 linux being hosted with Digital Ocean.
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 --helpTo 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)
-...
Launch of idoread.com
Current binary running https://idoread.com/. This production host is on Rocky 9 linux being hosted with Digital Ocean.
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 --helpTo 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
...