Comments (12)
Also had this problem. Steps i did to fix it:
docker-compose down
- in your /mnt/storage/media/youtube/ directory:
sudo chown user:user -R .
andsudo chmod 755 -R .
docker-compose up -d
from tubearchivist.
Thanks for everybody looking into it! I think what makes this different from other systems is that you are running with UID=1001 GID=1001 on your host machine. The chown command as mentioned by @seriousm4x workes because default first user after root on a linux system gets UID=1000, and that's also the user as the elasticsearch service runs at.
So take the elasticsearch container down, then try to run this command on the mount folder on your host machine: chown 1000:0
, this should match the UID and GID of the container. And then hopefully when you start the container again, it will have the right permissions on the mount point.
Let me know if that did it.
from tubearchivist.
How do you change the permissions?
In my case chown -R 1000:0 /mnt/storage/media/youtube
.
from tubearchivist.
Did that, no dice :(
Looks like the same error too.
Logs:
{"type": "server", "timestamp": "2021-09-15T21:59:37,474Z", "level": "ERROR", "component": "o.e.b.ElasticsearchUncaughtExceptionHandler", "cluster.name": "docker-cluster", "node.name": "3bb978ded0a4", "message": "uncaught exception in thread [main]",
"stacktrace": ["org.elasticsearch.bootstrap.StartupException: ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];",
"at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:75) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116) ~[elasticsearch-cli-7.14.1.jar:7.14.1]",
"at org.elasticsearch.cli.Command.main(Command.java:79) ~[elasticsearch-cli-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:81) ~[elasticsearch-7.14.1.jar:7.14.1]",
"Caused by: org.elasticsearch.ElasticsearchException: failed to bind service",
"at org.elasticsearch.node.Node.<init>(Node.java:798) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.node.Node.<init>(Node.java:281) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:219) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:219) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:399) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.14.1.jar:7.14.1]",
"... 6 more",
"Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes",
"at sun.nio.fs.UnixException.translateToIOException(UnixException.java:90) ~[?:?]",
"at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) ~[?:?]",
"at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?]",
"at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:396) ~[?:?]",
"at java.nio.file.Files.createDirectory(Files.java:694) ~[?:?]",
"at java.nio.file.Files.createAndCheckIsDirectory(Files.java:801) ~[?:?]",
"at java.nio.file.Files.createDirectories(Files.java:787) ~[?:?]",
"at org.elasticsearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:265) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:202) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:262) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.node.Node.<init>(Node.java:376) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.node.Node.<init>(Node.java:281) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:219) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:219) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:399) ~[elasticsearch-7.14.1.jar:7.14.1]",
"at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.14.1.jar:7.14.1]",
"... 6 more"] }
uncaught exception in thread [main]
ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];
Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:396)
at java.base/java.nio.file.Files.createDirectory(Files.java:694)
at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:801)
at java.base/java.nio.file.Files.createDirectories(Files.java:787)
at org.elasticsearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:265)
at org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:202)
at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:262)
at org.elasticsearch.node.Node.<init>(Node.java:376)
at org.elasticsearch.node.Node.<init>(Node.java:281)
at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:219)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:219)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:399)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:75)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116)
at org.elasticsearch.cli.Command.main(Command.java:79)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:81)
For complete error details, refer to the log at /usr/share/elasticsearch/logs/docker-cluster.log
from tubearchivist.
I just created a test environment and changing permissions works for me 🤔
from tubearchivist.
Hmmm....
from tubearchivist.
Just to be on the safe side, I brought the project down, removed the images, and brought everything back up. No dice, not sure what I'm doing wrong here.
from tubearchivist.
As a sanity test, I spun up a Debian 10 VM in Google Cloud, and ran the project. Then brought it down, changed ownership and permissions as @seriousm4x advised, and brought it back up. No problem what so ever.
Tried the same thing on my physical box, even nuked the /storage/media/youtube folder first, just to be sure, and followed the same procedure. Same error. I'm at a loss, lol. Is it just something weird with my physical box then?
from tubearchivist.
Well I'll be! Yep, that did it, I can get to TA's main page and ElasticSearch isn't freaking out!
Thank you so, so much man!
from tubearchivist.
and now I'm getting a 500 error every time I try to subscribe to a channel, but I think I should make that a separate issue.
Edit: can subscribe with a video link, but not channel link
from tubearchivist.
Glad this did it. Maybe that's worth mentioning under "potential pitfalls" in the readme, you weren't the first with that issue...
Regarding the 500 error, make sure you are running the newest version v0.0.1, some things should be fixed there. Then also make sure you are using one of the supported ways of entering channel ids to subscribe to as mentioned in the about page '?'.
from tubearchivist.
How do you change the permissions?
from tubearchivist.
Related Issues (20)
- [Bug]: Cookies acting weird when enabling when it's already enabled HOT 2
- [Bug]: Channel-specific auto-delete setting not used if greater than global setting HOT 1
- [Feature Request]: Improve /api/task-name/update_subscribed/ to Return Found Videos HOT 1
- [Feature Request]: Automatic timestamping HOT 1
- [Feature Request]: Revamped comments handling - separate documents in ES and pagination HOT 3
- [Bug]: Custom banner not updating immediately on client side HOT 3
- [Bug]: Unable to download API page: HTTP Error 400: Bad Request HOT 6
- [Installation]: Refusing to deserialize untrusted content of type pickle (application/x-python-serialize) HOT 4
- [Bug]: Channels with 'Index playlist' enabled: Unsubscribe button is displayed for the playlists that I don't subscribe
- [Feature Request]: Better UX Flow that matches Youtube's flow. HOT 3
- [Bug]: 'Rescan subscriptions' button doesn't detect new videos for playlists HOT 2
- [Bug]: Downloaded videos disappearing from filesystem HOT 5
- [Bug]: Playlist Metadata extraction failed HOT 6
- [Feature Request]: More option for yt-dlp HOT 4
- [Installation]: tubearchivist-es crashes - ARM support request HOT 16
- [Feature Request]: Add new menu to show recently downloads videos not yet viewed HOT 5
- [Feature Request]: Support for Whisper Transcription HOT 1
- [Bug]: Downloads page stop button ambiguous HOT 3
- [Feature Request]: Video selection for (batch) actions HOT 2
- Deleted vidoes re-added to the queue HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tubearchivist.