From 0bd110c6b9a3d3d2343dbea4fa3977d57b478706 Mon Sep 17 00:00:00 2001 From: DrMxrcy <58747968+DrMxrcy@users.noreply.github.com> Date: Mon, 8 May 2023 14:38:05 -0400 Subject: [PATCH] Add Filestash (#474) * Add Filestash * Update config.json --- README.md | 1 + apps/filestash/config.json | 35 ++++++++++++ apps/filestash/docker-compose.yml | 35 ++++++++++++ apps/filestash/metadata/description.md | 76 +++++++++++++++++++++++++ apps/filestash/metadata/logo.jpg | Bin 0 -> 47492 bytes 5 files changed, 147 insertions(+) create mode 100644 apps/filestash/config.json create mode 100644 apps/filestash/docker-compose.yml create mode 100644 apps/filestash/metadata/description.md create mode 100644 apps/filestash/metadata/logo.jpg diff --git a/README.md b/README.md index 0cb292d1..67db7581 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Emulatorjs](https://github.com/EmulatorJS/EmulatorJS) - Self-hosted Javascript emulation for various system. - [Excalidraw](https://github.com/excalidraw/excalidraw) - Online whiteboard collaboration made easy - [Filebrowser](https://github.com/filebrowser/filebrowser) - Web File Browser +- [Filestash](https://github.com/mickael-kerjean/filestash) - A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze - [Firefly III](https://github.com/firefly-iii/firefly-iii) - A personal finances manager - [Fireshare](https://github.com/ShaneIsrael/fireshare) - Self host your media and share with unique links - [Flatnotes](https://github.com/Dullage/flatnotes) - A self-hosted, database-less note taking web app diff --git a/apps/filestash/config.json b/apps/filestash/config.json new file mode 100644 index 00000000..4a77cc34 --- /dev/null +++ b/apps/filestash/config.json @@ -0,0 +1,35 @@ +{ + "$schema": "../schema.json", + "name": "Filestash", + "port": 8189, + "available": true, + "exposable": true, + "id": "filestash", + "tipi_version": 1, + "version": "397fd8b", + "categories": ["utilities"], + "description": "A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze", + "short_desc": "A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze", + "author": "mickael-kerjean", + "source": "https://github.com/mickael-kerjean/filestash", + "form_fields": [ + { + "type": "text", + "label": "(Optional) Google Drive Client ID", + "required": false, + "env_variable": "FILESTASH_GDRIVE_CLIENT_ID" + }, + { + "type": "text", + "label": "(Optional) Google Drive Client Secret", + "required": false, + "env_variable": "FILESTASH_GDRIVE_CLIENT_SECRET" + }, + { + "type": "text", + "label": "(Optional) Dropbox Client ID", + "required": false, + "env_variable": "FILESTASH_DROPBOX_CLIENT_ID" + } + ] +} diff --git a/apps/filestash/docker-compose.yml b/apps/filestash/docker-compose.yml new file mode 100644 index 00000000..250bbdff --- /dev/null +++ b/apps/filestash/docker-compose.yml @@ -0,0 +1,35 @@ +version: '2' +services: + filestash: + container_name: filestash + image: machines/filestash:397fd8b + restart: unless-stopped + environment: + - APPLICATION_URL=${APP_DOMAIN} + - GDRIVE_CLIENT_ID=${FILESTASH_GDRIVE_CLIENT_ID} + - GDRIVE_CLIENT_SECRET=${FILESTASH_GDRIVE_CLIENT_SECRET} + - DROPBOX_CLIENT_ID=${FILESTASH_DROPBOX_CLIENT_ID} + - ONLYOFFICE_URL=http://filestash-onlyoffice + ports: + - ${APP_PORT}:8334 + depends_on: + - filestash-onlyoffice + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.filestash.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.filestash.entrypoints: websecure + traefik.http.routers.filestash.service: filestash + traefik.http.routers.filestash.tls.certresolver: myresolver + traefik.http.services.filestash.loadbalancer.server.port: 8334 + + filestash-onlyoffice: + container_name: filestash_oods + image: onlyoffice/documentserver:7.3.3.50 + restart: unless-stopped + security_opt: + - seccomp:unconfined + networks: + - tipi_main_network + diff --git a/apps/filestash/metadata/description.md b/apps/filestash/metadata/description.md new file mode 100644 index 00000000..36f516b4 --- /dev/null +++ b/apps/filestash/metadata/description.md @@ -0,0 +1,76 @@ +## Configure the Dropbox connector + +Configuring Dropbox must be done by: + +1. requesting access to the Dropbox API. Without this, Filestash can’t access anything stored on the Dropbox servers. To do that, go [there](https://www.dropbox.com/developers/apps/), then: + - click: “Create App” + - select: “dropbox api” + - select: “Full Dropbox” or “App folder” + - type: “whatever name you want” + - in the ‘redirect URI’ field, insert https://example.com/login +2. store the `client_id` configuration given by Dropbox (also known as the `App key`) in the admin console or by setting the `DROPBOX_CLIENT_ID` environment variable + +## Configure the Google Drive connector + +Configuring Google drive can be done by: + +1. Requesting access to the Google Drive API. Without this, Filestash cannot store anything on Google’s servers. To do that, you need to [go there](https://console.developers.google.com/apis/api/drive.googleapis.com/overview) and enable the Drive API. Then, go [there](https://console.developers.google.com/apis/credentials/oauthclient) and create credentials that Filestash will be using to communicate with Google +2. Publish the configuration provided by Google (`client_id` and `client_secret`) in your Filestash admin console or by setting the `GDRIVE_CLIENT_ID` and `GDRIVE_CLIENT_SECRET` environment variables + +--- + +[![screenshot](https://raw.githubusercontent.com/mickael-kerjean/filestash_images/master/.assets/photo.jpg)](https://raw.githubusercontent.com/mickael-kerjean/filestash_images/master/.assets/photo.jpg) + + [![](https://camo.githubusercontent.com/189498ada91da90bbdb4744c08cc65e8967890ff749389ddec490402333890e8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f6d69636b61656c2d6b65726a65616e2f66696c657374617368)](https://github.com/mickael-kerjean/contributors)[![](https://camo.githubusercontent.com/437c9de456499e8dda9d0ec3a4477b6b75655dc94d19986e17810fe0098781bc/68747470733a2f2f696d672e736869656c64732e696f2f6f70656e636f6c6c6563746976652f6261636b6572732f66696c657374617368) ](https://opencollective.com/filestash)[![](https://camo.githubusercontent.com/e8018d8ef35a1fd24b3740ca55507ac58f58b20be2a676f59f44ac08cb7ed780/68747470733a2f2f696d672e736869656c64732e696f2f6f70656e636f6c6c6563746976652f73706f6e736f72732f66696c657374617368) ](https://opencollective.com/filestash)[![](https://camo.githubusercontent.com/53f6b0e53320b9f7669819bc0bb281ea1a3d4a648c3611a7a669dbd1b58da7aa/68747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f70756c6c732f6d616368696e65732f66696c657374617368)](https://hub.docker.com/r/machines/filestash) + [![](https://github.com/mickael-kerjean/filestash/actions/workflows/ci.yml/badge.svg)](https://github.com/mickael-kerjean/filestash#)[![](https://camo.githubusercontent.com/bc51a239b32cd20f21e82567ceb3d68a589ba2a61c38d1138ee9ad3eb160950a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4952432d25323366696c6573746173682d627269676874677265656e2e737667)](https://kiwiirc.com/nextclient/#irc://irc.libera.chat/#filestash?nick=guest??) + +A Dropbox-like file manager that let you manage your data anywhere it is located: +[FTP](https://www.filestash.app/ftp-client.html) • FTPS • [SFTP](https://www.filestash.app/ssh-file-transfer.html) • [WebDAV](https://www.filestash.app/webdav-client.html) • Git • [S3](https://www.filestash.app/s3-browser.html) • NFS • Samba • Artifactory • [LDAP](https://www.filestash.app/ldap-browser.html) • Mysql +Storj • CardDAV • CalDAV • Backblaze B2 • [Minio](https://www.filestash.app/s3-browser.html) +Dropbox • Google Drive + +# [](https://github.com/mickael-kerjean/filestash#features)Features + +- Manage your files from a browser +- Authentication middleware to connect to various source of user +- Flexible Share mechanism +- Chromecast support for images, music, and videos +- Video player +- Video transcoding (mov, mkv, avi, mpeg, and more) +- Image viewer +- Image transcoding (raw images from Nikon, Canon, and more) +- Photo management +- Audio player +- Shared links are full fledge network drive +- Office documents (docx, xlsx and more) +- Full org mode client ([documentation](https://www.filestash.app/2018/05/31/release-note-v0.1/)) +- User friendly +- Mobile friendly +- Customisable +- Plugins +- Super fast +- Upload files and folders +- Download as zip +- Multiple cloud providers and protocols, easily extensible +- Nyan cat loader +- Quick access: frequently access folders are pin to the homepage +- Emacs, VIM or Sublime keybindings `;)` +- Search +- .. and many more + +# Documentation + +- [Getting started](https://www.filestash.app/docs/) +- [Installation](https://www.filestash.app/docs/install-and-upgrade/) +- [FAQ](https://www.filestash.app/docs/faq/) + +# Screenshots + + [![user experience on navigation](https://raw.githubusercontent.com/mickael-kerjean/filestash_images/master/.assets/navigation.gif)](https://demo.filestash.app)[![user experience on navigation](https://raw.githubusercontent.com/mickael-kerjean/filestash_images/master/.assets/navigation.gif) + +](https://demo.filestash.app/)[](https://demo.filestash.app/) + + [![user experience on medias](https://raw.githubusercontent.com/mickael-kerjean/filestash_images/master/.assets/photo_management.gif)](http://demo.filestash.app)[![user experience on medias](https://raw.githubusercontent.com/mickael-kerjean/filestash_images/master/.assets/photo_management.gif) + +](http://demo.filestash.app/)[](http://demo.filestash.app/) +\ \ No newline at end of file diff --git a/apps/filestash/metadata/logo.jpg b/apps/filestash/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30248e2e3e80cb844ae30b3c66129a48f5b6282e GIT binary patch literal 47492 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