oblecto 0.2.9 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/Oblecto-Web/dist/web/index.html +24 -3
  2. package/Oblecto-Web/dist/web/static/index-C-JsqHHk.css +1 -0
  3. package/Oblecto-Web/dist/web/static/index-DSZgpOOu.js +576 -0
  4. package/README.md +43 -7
  5. package/dist/bin/oblecto.js +12468 -61
  6. package/dist/index.js +10676 -6
  7. package/package.json +67 -39
  8. package/res/AGENTS.md +8 -0
  9. package/res/config.json +29 -7
  10. package/Oblecto-Web/dist/web/static/css/app.ef5965dbd50e69a7544e200a3f21fbaf.css +0 -1
  11. package/Oblecto-Web/dist/web/static/css/app.ef5965dbd50e69a7544e200a3f21fbaf.css.map +0 -1
  12. package/Oblecto-Web/dist/web/static/js/app.1352bf3c311f0e7ab716.js +0 -7150
  13. package/Oblecto-Web/dist/web/static/js/app.1352bf3c311f0e7ab716.js.map +0 -1
  14. package/Oblecto-Web/dist/web/static/js/manifest.b8404c3e329d75bb51fd.js +0 -154
  15. package/Oblecto-Web/dist/web/static/js/manifest.b8404c3e329d75bb51fd.js.map +0 -1
  16. package/Oblecto-Web/dist/web/static/js/vendor.521641a02e42750ba5a7.js +0 -32455
  17. package/Oblecto-Web/dist/web/static/js/vendor.521641a02e42750ba5a7.js.map +0 -1
  18. package/dist/bin/oblecto.d.ts +0 -2
  19. package/dist/bin/scripts/adduser.d.ts +0 -2
  20. package/dist/bin/scripts/adduser.js +0 -50
  21. package/dist/bin/scripts/changepassword.d.ts +0 -2
  22. package/dist/bin/scripts/changepassword.js +0 -48
  23. package/dist/bin/scripts/deluser.d.ts +0 -2
  24. package/dist/bin/scripts/deluser.js +0 -34
  25. package/dist/bin/scripts/helpers/argumentError.d.ts +0 -2
  26. package/dist/bin/scripts/helpers/argumentError.js +0 -12
  27. package/dist/bin/scripts/helpers/generateAssetDirectories.d.ts +0 -1
  28. package/dist/bin/scripts/helpers/generateAssetDirectories.js +0 -37
  29. package/dist/bin/scripts/init/assets.d.ts +0 -2
  30. package/dist/bin/scripts/init/assets.js +0 -24
  31. package/dist/bin/scripts/init/database.d.ts +0 -2
  32. package/dist/bin/scripts/init/database.js +0 -21
  33. package/dist/bin/scripts/init/general.d.ts +0 -2
  34. package/dist/bin/scripts/init/general.js +0 -54
  35. package/dist/bin/scripts/init/index.d.ts +0 -2
  36. package/dist/bin/scripts/init/index.js +0 -26
  37. package/dist/bin/scripts/removepassword.d.ts +0 -2
  38. package/dist/bin/scripts/removepassword.js +0 -42
  39. package/dist/config.d.ts +0 -7
  40. package/dist/config.js +0 -45
  41. package/dist/core/graphical.d.ts +0 -17
  42. package/dist/core/graphical.js +0 -179
  43. package/dist/core/index.d.ts +0 -9
  44. package/dist/core/index.js +0 -24
  45. package/dist/index.d.ts +0 -1
  46. package/dist/lib/artwork/ArtworkScaler.d.ts +0 -5
  47. package/dist/lib/artwork/ArtworkScaler.js +0 -31
  48. package/dist/lib/artwork/ArtworkUtils.d.ts +0 -8
  49. package/dist/lib/artwork/ArtworkUtils.js +0 -35
  50. package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.d.ts +0 -8
  51. package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.js +0 -58
  52. package/dist/lib/artwork/movies/MovieArtworkCollector.d.ts +0 -35
  53. package/dist/lib/artwork/movies/MovieArtworkCollector.js +0 -93
  54. package/dist/lib/artwork/movies/MovieArtworkDownloader.d.ts +0 -8
  55. package/dist/lib/artwork/movies/MovieArtworkDownloader.js +0 -65
  56. package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.d.ts +0 -6
  57. package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.js +0 -57
  58. package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.d.ts +0 -6
  59. package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.js +0 -47
  60. package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.d.ts +0 -8
  61. package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.js +0 -58
  62. package/dist/lib/artwork/series/SeriesArtworkCollector.d.ts +0 -37
  63. package/dist/lib/artwork/series/SeriesArtworkCollector.js +0 -95
  64. package/dist/lib/artwork/series/SeriesArtworkDownloader.d.ts +0 -8
  65. package/dist/lib/artwork/series/SeriesArtworkDownloader.js +0 -62
  66. package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.d.ts +0 -6
  67. package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.js +0 -44
  68. package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.d.ts +0 -16
  69. package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.js +0 -64
  70. package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.d.ts +0 -16
  71. package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.js +0 -51
  72. package/dist/lib/cleaners/FileCleaner.d.ts +0 -6
  73. package/dist/lib/cleaners/FileCleaner.js +0 -68
  74. package/dist/lib/cleaners/MovieCleaner.d.ts +0 -8
  75. package/dist/lib/cleaners/MovieCleaner.js +0 -48
  76. package/dist/lib/cleaners/SeriesCleaner.d.ts +0 -10
  77. package/dist/lib/cleaners/SeriesCleaner.js +0 -88
  78. package/dist/lib/common/AggregateIdentifier.d.ts +0 -9
  79. package/dist/lib/common/AggregateIdentifier.js +0 -57
  80. package/dist/lib/common/AggregateUpdateRetriever.d.ts +0 -5
  81. package/dist/lib/common/AggregateUpdateRetriever.js +0 -46
  82. package/dist/lib/downloader/index.d.ts +0 -6
  83. package/dist/lib/downloader/index.js +0 -83
  84. package/dist/lib/errors/DebugExtendableError.d.ts +0 -5
  85. package/dist/lib/errors/DebugExtendableError.js +0 -20
  86. package/dist/lib/errors/ExtendableError.d.ts +0 -3
  87. package/dist/lib/errors/ExtendableError.js +0 -22
  88. package/dist/lib/errors/FileExistsError.d.ts +0 -4
  89. package/dist/lib/errors/FileExistsError.js +0 -14
  90. package/dist/lib/errors/IdentificationError.d.ts +0 -4
  91. package/dist/lib/errors/IdentificationError.js +0 -14
  92. package/dist/lib/errors/InfoExtendableError.d.ts +0 -5
  93. package/dist/lib/errors/InfoExtendableError.js +0 -20
  94. package/dist/lib/errors/VideoAnalysisError.d.ts +0 -4
  95. package/dist/lib/errors/VideoAnalysisError.js +0 -14
  96. package/dist/lib/errors/VideoIdentificationError.d.ts +0 -4
  97. package/dist/lib/errors/VideoIdentificationError.js +0 -9
  98. package/dist/lib/errors/WarnExtendableError.d.ts +0 -5
  99. package/dist/lib/errors/WarnExtendableError.js +0 -20
  100. package/dist/lib/federation/client/FederationClient.d.ts +0 -31
  101. package/dist/lib/federation/client/FederationClient.js +0 -127
  102. package/dist/lib/federation/client/FederationClientController.d.ts +0 -9
  103. package/dist/lib/federation/client/FederationClientController.js +0 -45
  104. package/dist/lib/federation/client/FederationDataClient.d.ts +0 -11
  105. package/dist/lib/federation/client/FederationDataClient.js +0 -56
  106. package/dist/lib/federation/client/FederationMediaClient.d.ts +0 -12
  107. package/dist/lib/federation/client/FederationMediaClient.js +0 -70
  108. package/dist/lib/federation/server/FederationController.d.ts +0 -10
  109. package/dist/lib/federation/server/FederationController.js +0 -32
  110. package/dist/lib/federation/server/FederationDataServer.d.ts +0 -4
  111. package/dist/lib/federation/server/FederationDataServer.js +0 -22
  112. package/dist/lib/federation/server/FederationDataServerConnection.d.ts +0 -8
  113. package/dist/lib/federation/server/FederationDataServerConnection.js +0 -96
  114. package/dist/lib/federation/server/FederationMediaServer.d.ts +0 -4
  115. package/dist/lib/federation/server/FederationMediaServer.js +0 -22
  116. package/dist/lib/federation/server/FederationMediaServerConnection.d.ts +0 -11
  117. package/dist/lib/federation/server/FederationMediaServerConnection.js +0 -83
  118. package/dist/lib/federation/server/FederationServer.d.ts +0 -11
  119. package/dist/lib/federation/server/FederationServer.js +0 -40
  120. package/dist/lib/federation/server/FederationServerConnection.d.ts +0 -18
  121. package/dist/lib/federation/server/FederationServerConnection.js +0 -97
  122. package/dist/lib/federationindexer/FederationEpisodeIndexer.d.ts +0 -5
  123. package/dist/lib/federationindexer/FederationEpisodeIndexer.js +0 -65
  124. package/dist/lib/federationindexer/FederationMovieIndexer.d.ts +0 -5
  125. package/dist/lib/federationindexer/FederationMovieIndexer.js +0 -48
  126. package/dist/lib/federationv2/federationController/index.js +0 -13
  127. package/dist/lib/indexers/MediaIdentifier.d.ts +0 -5
  128. package/dist/lib/indexers/MediaIdentifier.js +0 -15
  129. package/dist/lib/indexers/files/FileIndexer.d.ts +0 -10
  130. package/dist/lib/indexers/files/FileIndexer.js +0 -103
  131. package/dist/lib/indexers/movies/MovieCollector.d.ts +0 -25
  132. package/dist/lib/indexers/movies/MovieCollector.js +0 -65
  133. package/dist/lib/indexers/movies/MovieIdentifier.d.ts +0 -10
  134. package/dist/lib/indexers/movies/MovieIdentifier.js +0 -22
  135. package/dist/lib/indexers/movies/MovieIndexer.d.ts +0 -11
  136. package/dist/lib/indexers/movies/MovieIndexer.js +0 -64
  137. package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.d.ts +0 -4
  138. package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.js +0 -52
  139. package/dist/lib/indexers/series/EpisodeIdentifier.d.ts +0 -12
  140. package/dist/lib/indexers/series/EpisodeIdentifier.js +0 -25
  141. package/dist/lib/indexers/series/SeriesCollector.d.ts +0 -25
  142. package/dist/lib/indexers/series/SeriesCollector.js +0 -69
  143. package/dist/lib/indexers/series/SeriesIdentifer.d.ts +0 -11
  144. package/dist/lib/indexers/series/SeriesIdentifer.js +0 -24
  145. package/dist/lib/indexers/series/SeriesIndexer.d.ts +0 -11
  146. package/dist/lib/indexers/series/SeriesIndexer.js +0 -140
  147. package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.d.ts +0 -4
  148. package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.js +0 -48
  149. package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.d.ts +0 -6
  150. package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.js +0 -90
  151. package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.d.ts +0 -7
  152. package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.js +0 -87
  153. package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.d.ts +0 -10
  154. package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.js +0 -82
  155. package/dist/lib/oblecto/index.d.ts +0 -68
  156. package/dist/lib/oblecto/index.js +0 -125
  157. package/dist/lib/queue/index.d.ts +0 -32
  158. package/dist/lib/queue/index.js +0 -96
  159. package/dist/lib/realtime/RealtimeClient.d.ts +0 -27
  160. package/dist/lib/realtime/RealtimeClient.js +0 -137
  161. package/dist/lib/realtime/RealtimeController.d.ts +0 -12
  162. package/dist/lib/realtime/RealtimeController.js +0 -50
  163. package/dist/lib/redisQueue/index.js +0 -109
  164. package/dist/lib/sets/tv/MovieSetCollector.d.ts +0 -6
  165. package/dist/lib/sets/tv/MovieSetCollector.js +0 -49
  166. package/dist/lib/streamSessions/StreamSession.d.ts +0 -41
  167. package/dist/lib/streamSessions/StreamSession.js +0 -146
  168. package/dist/lib/streamSessions/StreamSessionController.d.ts +0 -19
  169. package/dist/lib/streamSessions/StreamSessionController.js +0 -78
  170. package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.d.ts +0 -5
  171. package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.js +0 -116
  172. package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.d.ts +0 -5
  173. package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.js +0 -41
  174. package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.d.ts +0 -15
  175. package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.js +0 -148
  176. package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.d.ts +0 -9
  177. package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.js +0 -72
  178. package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.d.ts +0 -6
  179. package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.js +0 -96
  180. package/dist/lib/updaters/files/FileUpdateCollector.d.ts +0 -20
  181. package/dist/lib/updaters/files/FileUpdateCollector.js +0 -44
  182. package/dist/lib/updaters/files/FileUpdater.d.ts +0 -49
  183. package/dist/lib/updaters/files/FileUpdater.js +0 -194
  184. package/dist/lib/updaters/movies/MovieUpdateCollector.d.ts +0 -20
  185. package/dist/lib/updaters/movies/MovieUpdateCollector.js +0 -48
  186. package/dist/lib/updaters/movies/MovieUpdater.d.ts +0 -12
  187. package/dist/lib/updaters/movies/MovieUpdater.js +0 -49
  188. package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.d.ts +0 -20
  189. package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.js +0 -45
  190. package/dist/lib/updaters/series/SeriesUpdateCollector.d.ts +0 -37
  191. package/dist/lib/updaters/series/SeriesUpdateCollector.js +0 -79
  192. package/dist/lib/updaters/series/SeriesUpdater.d.ts +0 -22
  193. package/dist/lib/updaters/series/SeriesUpdater.js +0 -84
  194. package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.d.ts +0 -11
  195. package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.js +0 -70
  196. package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.d.ts +0 -21
  197. package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.js +0 -68
  198. package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.d.ts +0 -5
  199. package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.js +0 -38
  200. package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.d.ts +0 -21
  201. package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.js +0 -50
  202. package/dist/models/episode.d.ts +0 -76
  203. package/dist/models/episode.js +0 -62
  204. package/dist/models/episodeFiles.d.ts +0 -5
  205. package/dist/models/episodeFiles.js +0 -14
  206. package/dist/models/file.d.ts +0 -26
  207. package/dist/models/file.js +0 -32
  208. package/dist/models/movie.d.ts +0 -30
  209. package/dist/models/movie.js +0 -36
  210. package/dist/models/movieFiles.d.ts +0 -5
  211. package/dist/models/movieFiles.js +0 -14
  212. package/dist/models/movieSet.d.ts +0 -20
  213. package/dist/models/movieSet.js +0 -26
  214. package/dist/models/series.d.ts +0 -59
  215. package/dist/models/series.js +0 -50
  216. package/dist/models/seriesSet.d.ts +0 -9
  217. package/dist/models/seriesSet.js +0 -17
  218. package/dist/models/stream.d.ts +0 -73
  219. package/dist/models/stream.js +0 -81
  220. package/dist/models/trackEpisode.d.ts +0 -9
  221. package/dist/models/trackEpisode.js +0 -17
  222. package/dist/models/trackMovie.d.ts +0 -9
  223. package/dist/models/trackMovie.js +0 -17
  224. package/dist/models/user.d.ts +0 -19
  225. package/dist/models/user.js +0 -26
  226. package/dist/submodules/REST/index.d.ts +0 -9
  227. package/dist/submodules/REST/index.js +0 -59
  228. package/dist/submodules/REST/middleware/auth.d.ts +0 -5
  229. package/dist/submodules/REST/middleware/auth.js +0 -28
  230. package/dist/submodules/REST/routes/auth.d.ts +0 -2
  231. package/dist/submodules/REST/routes/auth.js +0 -48
  232. package/dist/submodules/REST/routes/clients.d.ts +0 -2
  233. package/dist/submodules/REST/routes/clients.js +0 -54
  234. package/dist/submodules/REST/routes/episodes.d.ts +0 -2
  235. package/dist/submodules/REST/routes/episodes.js +0 -275
  236. package/dist/submodules/REST/routes/files.d.ts +0 -2
  237. package/dist/submodules/REST/routes/files.js +0 -53
  238. package/dist/submodules/REST/routes/index.d.ts +0 -2
  239. package/dist/submodules/REST/routes/index.js +0 -49
  240. package/dist/submodules/REST/routes/movies.d.ts +0 -2
  241. package/dist/submodules/REST/routes/movies.js +0 -303
  242. package/dist/submodules/REST/routes/sets.d.ts +0 -2
  243. package/dist/submodules/REST/routes/sets.js +0 -35
  244. package/dist/submodules/REST/routes/settings/index.d.ts +0 -2
  245. package/dist/submodules/REST/routes/settings/index.js +0 -22
  246. package/dist/submodules/REST/routes/settings/maintenance.d.ts +0 -2
  247. package/dist/submodules/REST/routes/settings/maintenance.js +0 -87
  248. package/dist/submodules/REST/routes/settings/misc.d.ts +0 -2
  249. package/dist/submodules/REST/routes/settings/misc.js +0 -38
  250. package/dist/submodules/REST/routes/settings/sources.d.ts +0 -2
  251. package/dist/submodules/REST/routes/settings/sources.js +0 -61
  252. package/dist/submodules/REST/routes/streaming.js +0 -91
  253. package/dist/submodules/REST/routes/tvshows.d.ts +0 -2
  254. package/dist/submodules/REST/routes/tvshows.js +0 -137
  255. package/dist/submodules/REST/routes/users.d.ts +0 -2
  256. package/dist/submodules/REST/routes/users.js +0 -107
  257. package/dist/submodules/REST/routes/web.d.ts +0 -2
  258. package/dist/submodules/REST/routes/web.js +0 -43
  259. package/dist/submodules/axiosTimeout.d.ts +0 -1
  260. package/dist/submodules/axiosTimeout.js +0 -31
  261. package/dist/submodules/database.d.ts +0 -1
  262. package/dist/submodules/database.js +0 -180
  263. package/dist/submodules/ffmpeg.d.ts +0 -1
  264. package/dist/submodules/ffmpeg.js +0 -23
  265. package/dist/submodules/ffprobe.d.ts +0 -1
  266. package/dist/submodules/ffprobe.js +0 -22
  267. package/dist/submodules/guessit.d.ts +0 -5
  268. package/dist/submodules/guessit.js +0 -48
  269. package/dist/submodules/logger/index.d.ts +0 -7
  270. package/dist/submodules/logger/index.js +0 -43
  271. package/dist/submodules/promiseTimeout.d.ts +0 -1
  272. package/dist/submodules/promiseTimeout.js +0 -28
  273. package/dist/submodules/zeroconf.js +0 -19
package/README.md CHANGED
@@ -4,17 +4,53 @@
4
4
  ![Oblecto logo](https://github.com/robinp7720/Oblecto/blob/master/images/logotype.png?raw=true)
5
5
  # Oblecto
6
6
  ## What is it?
7
- Oblecto is a media server, which streams media you already own, and is designed to be at the heart of your entertainment experience. It runs on your home server to index and analyze your media such as Movies and TV Shows and presents them in an interface tailored for your media consupmtion needs.
7
+ Oblecto is a self-hosted media server for streaming the media you already own. It indexes Movies and TV Shows, enriches them with metadata and artwork, and serves them through a web interface or compatible clients.
8
8
 
9
- ## How do I set this up?
10
- Oblecto can be installed using NPM or directly from GIT. We recommend you to install from npm if you do not intend to help with development.
9
+ ## Features
10
+ - Movie and TV library indexing with background updates.
11
+ - Metadata and artwork from TMDb, TVDB, and Fanart.tv (bring your own API keys).
12
+ - Built-in web UI (Oblecto-Web) served by the backend.
13
+ - Jellyfin/Emby API emulation for compatible clients (port `8096`).
14
+ - Streaming sessions with direct play and recode/HLS support (via FFmpeg).
15
+ - Optional federation and seedbox import support.
16
+ - CLI tools for setup, database init, and user management.
11
17
 
12
- Please follow the setup and installation guide here: https://github.com/robinp7720/Oblecto/wiki/Getting-Started
18
+ ## What Oblecto can do
19
+ - Scan folders of Movies/TV, identify items, and keep your library organized.
20
+ - Fetch posters, fanart, episode banners, descriptions, and ratings.
21
+ - Serve your library to the web UI and compatible Jellyfin clients.
22
+ - Track playback progress and provide "Next Up" for TV series.
23
+ - Store assets and metadata in a local database (SQLite by default).
13
24
 
14
- If you have further questions or need help setting up Oblecto, please don't hesitate to ask in the gitter chat! Oblecto should be easy to install for everyone. If it doesn't achieve this, improvments must be made!
25
+ ## Setup
26
+ Oblecto can be installed using NPM or directly from Git. We recommend NPM unless you plan to develop.
15
27
 
16
- ## I've set this thing up. Now where's the place I actually watch my media?
17
- Simply go to the oblecto front end at ```localhost:8080```. Oblecto will redirect you to the frontend. The frontend is maintained sepperatly at https://github.com/robinp7720/Oblecto-Web
28
+ ### Quick start (npm)
29
+ 1. Install: `npm install -g oblecto`
30
+ 2. Initialize config and assets: `oblecto init`
31
+ 3. Edit `/etc/oblecto/config.json` and set:
32
+ - `movies.directories` and `tvshows.directories`
33
+ - API keys: `themoviedb.key`, `tvdb.key`, `fanart.tv.key`
34
+ - Database settings (SQLite by default)
35
+ 4. Initialize the database: `oblecto init database`
36
+ 5. Start the server: `oblecto start` (or `oblecto start-tui`)
37
+ 6. Open the web UI at `http://localhost:8080/web` (or the port set in `server.port`)
38
+
39
+ ### From source (development)
40
+ 1. Install dependencies: `npm install`
41
+ 2. Build the web UI: `npm run build:web`
42
+ 3. Build or run the backend:
43
+ - `npm run build` then `npm run start`, or
44
+ - `npm run dev` for live development
45
+ 4. Use the CLI if needed: `npm run oblecto` (or `npm run oblecto:dev`)
46
+
47
+ ### Configuration notes
48
+ - Config path order: `OBLECTO_CONFIG_PATH` -> `./res/config.json` -> `/etc/oblecto/config.json`
49
+ - Default SQLite file: `/etc/oblecto/database.sqlite`
50
+ - Sample config template: `res/config.json`
51
+
52
+ Need help? Ask in the gitter chat or check the setup guide:
53
+ https://github.com/robinp7720/Oblecto/wiki/Getting-Started
18
54
 
19
55
 
20
56
  ## Powered by