imtbl / hyve Goto Github PK
View Code? Open in Web Editor NEWExpose and consume your hydrus media via HTTP API
License: GNU Affero General Public License v3.0
Expose and consume your hydrus media via HTTP API
License: GNU Affero General Public License v3.0
I'm setting up without Docker and think everything is set up correctly, however after starting up the server and web services the page displays:
hyve has encountered an internal error. please check your server.
Along with the console logging these:
GET /api 304 2.101 ms - -
GET /api/info 500 1.257 ms - 31
GET /api/most-used-tags 500 0.542 ms - 31
GET /api/namespaces 500 0.598 ms - 31
GET /api/mime-types 500 0.601 ms - 31
I'm on MacOS 10.13.6 if that has any relevancy. If there's any other details I can provide to help please let me know. And thank you for your hard work!
It's be nice to see a bit of extra security added to the accounts.
For a while now, it seems the process for syncing crashes. When this happens however, it results in the service becoming permanently locked, as .sync-lock
is never removed.
A quick workaround would be to clear that file when the docker container is restarted. This would mean we could at least restart the container to bring it back into normal operation.
As to the cause, I don't know what that is. But here is the section of logs that I believe is relevant:
Pastebin for easier reading.
time="2020-05-31T13:05:36Z" level=info msg="job succeeded" iteration=46 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:00Z" level=info msg=starting iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:01Z" level=info msg="6/1/2020, 2:00:01 AM: Running sync…" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:01Z" level=info channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:01Z" level=info msg="Create initial tables (if necessary): 0.012s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:01Z" level=info msg="Drop zombie tables: 0.000s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:01Z" level=info msg="Attach hydrus databases: 0.031s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:06Z" level=info msg="Get namespaces: 5.299s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:06Z" level=info msg="Create new tables: 0.014s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:06Z" level=info msg="Fill new namespaces table: 0.139s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:13Z" level=info msg="Fill new tags table: 6.255s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:01:21Z" level=info msg="received terminated, shutting down"
time="2020-05-31T14:01:21Z" level=info msg="waiting for jobs to finish"
Waiting 60 seconds before running initial sync…
Another sync seems to be running already, aborting. If you are certain that this is not the case, delete /data/hyve/.sync-lock and try again.
time="2020-05-31T15:03:28Z" level=info msg="read crontab: .crontab"
time="2020-05-31T16:00:00Z" level=info msg=starting iteration=0 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T16:00:00Z" level=info msg="Another sync seems to be running already, aborting. If you are certain that this is not the case, delete /data/hyve/.sync-lock and try again." channel=stdout iteration=0 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T16:00:00Z" level=info msg="job succeeded" iteration=0 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T17:00:00Z" level=info msg=starting iteration=1 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T17:00:00Z" level=info msg="Another sync seems to be running already, aborting. If you are certain that this is not the case, delete /data/hyve/.sync-lock and try again." channel=stdout iteration=1 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"```
When browsing search results, or just files in general, clicking an image opens the image page. On this page, there are to buttons that allow up to go back a result, or forward one:
However, if you open one of the result in a new tab, those buttons are missing:
Can you please make it so opening an image in a new tab retains this back and forward ability please?
1. It is unclear how to run multiple instances from a single source. This can be told for all 3 parts, server, sync and web.
I've changed bin/www
, so it accepts environment file as an optional agrument:
const envpath = '../' + (process.argv[2] ? process.argv[2] : '.env')
require('dotenv').config({ path: path.resolve(__dirname, envpath )})
Maybe there is a more idiomatic way?
Now systemd service can look like this:
[Unit]
Description=hyve-dolls
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=bernkastel
ExecStart=/usr/bin/node /home/bernkastel/hyve/services/server/bin/www 'dolls.env'
WorkingDirectory=/home/bernkastel/hyve/services/server
[Install]
WantedBy=multi-user.target
2. Web needs a base path configuration, so it can be run in a subdirectory. In vue.config.js
i've added:
publicPath: process.env.VUE_APP_HYVE_BASE_URL
By default it should be /
Hi,
I was wondering if it were possible to be able to sort by date?
A lot of my files ID's aren't in order of oldest to newest, so I wanted to know if there was a way of sorting by the files modified date so it looks more like proper online booru's.
Also the random sort retains its order, even once other filters have been applied and you can't change the random order unless the server is restart. Is it possible to reshuffled the random order whilst in the web browser? Maybe even allow someone to manually change the seed?
A user encountered the following error when syncing to hydrus client:
hyve-sync_1 | Error while trying to sync.
hyve-sync_1 | SqliteError: no such table: hydrus_caches_db.local_tags_cache
hyve-sync_1 | at fillNewTagsTable (/usr/src/app/services/sync-client/src/sync/index.js:244:11)
hyve-sync_1 | at Object.run (/usr/src/app/services/sync-client/src/sync/index.js:37:3)
hyve-sync_1 | at Object.<anonymous> (/usr/src/app/services/sync-client/bin/sync:94:10)
hyve-sync_1 | at Module._compile (internal/modules/cjs/loader.js:1123:30)
hyve-sync_1 | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10)
hyve-sync_1 | at Module.load (internal/modules/cjs/loader.js:972:32)
hyve-sync_1 | at Function.Module._load (internal/modules/cjs/loader.js:872:14)
hyve-sync_1 | at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
hyve-sync_1 | at internal/main/run_main_module.js:17:47
hyve-sync_1 | time="2020-04-24T10:29:55Z" level=info msg="read crontab: .crontab"
I previously assumed that this table should always exist, but that is apparently not the case; maybe swapping the table for a different one that's guaranteed to exist might be sanest option.
Edit: After some initial investigation, the table not existing might be a bug in hydrus with specific upgrade scenarios.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.