A small web interface inspired by cakebox-light written with Angular and NodeJS, to allows you to browse, manage and share the files you want.
You can use it with rtorrent and Flood UI to easily share your downloads.
- Internationalization (i18n)
- Check new version
- Stream when it's possible (mp4 only for now)
- [] Download all folder (as zip or tar)
- [] Manage users (add/delete/edit user)
- [] Pagination
- [] Caching
- [] Real release process ...
- NodeJS v10 or higher
- node-gyp, see https://www.npmjs.com/package/node-gyp#installation
- (OPTIONAL) themoviedb.org api key : create an account, go to https://www.themoviedb.org/settings/api and ask/get API Key (v3 auth).
git clone https://github.com/DownloadHelper/macaronbox.git
cd macaronbox
cd macaronbox-client && npm install
npm run build:prod
cd ../server && npm install
- In ./server copy
config.template.js
toconfig.js
and review its comments. This is required.
From the root of the server directory...
npm start
With default settings, go to http://localhost:8081. You can configure the port in config.js.
Of course this is recommended to :
- Create a technical user
macaronbox
(with no ssh and no home, for example :useradd -r -s /sbin/nologin macaronbox
) - Change owner of macaron app (for example :
chown -R macaronbox:macaronbox ./macaronbox
) - Create, enable and use service in
/etc/systemd/system
Service example /etc/systemd/system/macaronbox.service
:
[Service]
WorkingDirectory=/opt/macaronbox/server
ExecStart=/usr/bin/npm start
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=notell
User=macaronbox
Group=macaronbox
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
For your first login you have to use default admin user. Username : admin / Password : admin.
git pull
- check potential change into
config.template.js
- kill the currently running macaronbox server
- rerun
npm install
into macaronbox-client and server - rerun
npm run build:prod
into macaronbox-client - restart server with
npm start
- Run
npm install
on macaronbox-client and server - Run
npm start
on macaronbox-client - Uncomment cors config on server/server.js
// ONLY FOR DEV
// app.use(function (req, res, next) {
// res.setHeader('Access-Control-Allow-Origin', 'http://localhost:4200');
// res.setHeader('Access-Control-Allow-Methods', 'POST,DELETE');
// res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
// res.setHeader('Access-Control-Allow-Credentials', true);
// next();
// });
- Run
npm start
ornodemon server.js
on server - Access to the front UI on your browser. Default is
http://localhost:4200
.