{"id":15062158,"url":"https://github.com/th-projects/filenest","last_synced_at":"2026-02-11T03:31:43.306Z","repository":{"id":256559652,"uuid":"827323668","full_name":"TH-Projects/FileNest","owner":"TH-Projects","description":"A straightforward file-sharing server accessible through a web client. This project was developed as part of an examination for the Distributed Systems course at DHBW Heidenheim.","archived":false,"fork":false,"pushed_at":"2024-09-26T06:44:38.000Z","size":5624,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-15T12:14:53.673Z","etag":null,"topics":["distributed-systems","docker","docker-compose","fastify","file-sharing","mariadb","minio-storage","reactjs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TH-Projects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-11T12:31:10.000Z","updated_at":"2024-09-26T06:43:18.000Z","dependencies_parsed_at":"2024-09-29T07:41:22.020Z","dependency_job_id":"8b098091-3d04-4342-bc75-d01a963e6f00","html_url":"https://github.com/TH-Projects/FileNest","commit_stats":null,"previous_names":["th-projects/filenest"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TH-Projects%2FFileNest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TH-Projects%2FFileNest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TH-Projects%2FFileNest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TH-Projects%2FFileNest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TH-Projects","download_url":"https://codeload.github.com/TH-Projects/FileNest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243725635,"owners_count":20337670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["distributed-systems","docker","docker-compose","fastify","file-sharing","mariadb","minio-storage","reactjs"],"created_at":"2024-09-24T23:31:15.304Z","updated_at":"2026-02-11T03:31:43.276Z","avatar_url":"https://github.com/TH-Projects.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"right\"\u003e \u003cimg src=\"client/public/logo.png\" alt=\"FileNestLogo\" width=\"150\"/\u003e \u003c/p\u003e\n\n# FileNest  \n\nA straightforward file-sharing server accessible through a web client. \nThis project was developed as part of an examination for the Distributed Systems course at DHBW Heidenheim.\n\n## Get The Application running\n\nFirst clone the repo with the project directory `FileNest` (name is mandatory).\n```\nhttps://github.com/TH-Projects/FileNest.git\n```\n\nBefore launching the system it is needed to define a .env file containing needed variables for running the application and configuring the infrastructure.\nThe .env-file has so define the following environmental variables:\n\n### Root .env\nPlace an .env file in the project root folder\n```\n#JWT\nJWT_SECRET=\u003caSecretKeyForJWTAuth\u003e\n\n#API Calls\nNGINX_API=http://nginx:81 # Adapt Port for Nginx if needed\n\n#Minio\nMINIO_ROOT_USER=\u003cusernameForMinIORoot\u003e\nMINIO_ROOT_PASSWORD=\u003cyourPassword\u003e\nMINIO_ALIAS=myminio\nMINIO_ACCESS_KEY=\u003ckeyForMinIOAccess\u003e\nMINIO_SECRET_KEY=\u003cminIOSecretKey\u003e\nMINIO_USER=\u003cusernameForMinIO\u003e\nMINIO_USER_ACCESS_KEY=\u003cuserAccessKey\u003e\nMINIO_SERVER_PORT=9000 # Adapt port for minIO if needed\n\n\n#MySQL\nMYSQL_ROOT_PASSWORD=\u003cmySQLRootPwd\u003e\nMYSQL_DATABASE=filenest\nMYSQL_USER=\u003cusernameForMySQL\u003e\nMYSQL_PASSWORD=\u003cpwdForMySQL\u003e\n\n#URLs\nURL_MINIO1=minio1  # Adapt if needed\nURL_MINIO2=minio2  # Adapt if needed\nURL_MINIO3=minio3  # Adapt if needed\nURL_MINIO4=minio4  # Adapt if needed\n\nURL_METADB1=metadb1  # Adapt if needed\nURL_METADB2=metadb2  # Adapt if needed\nURL_METADB3=metadb3  # Adapt if needed\n\nURL_REACTAPP=reactapp  # Adapt if needed\n\nURL_NGINX=nginx\n\nURL_SERVERMETADB1=servermetadb1  # Adapt if needed\nURL_SERVERMETADB2=servermetadb2  # Adapt if needed\nURL_SERVERMETADB3=servermetadb3  # Adapt if needed\n\n\n#Ports\nPORT_MINIO=9000  # Adapt if needed\n\nPORT_SERVERFASTIFY=3000  # Adapt if needed\n\nPORT_METADB=3306  # Adapt if needed\n\nPORT_REACTAPP=3000  # Adapt if needed\n\nPORT_BROKER=6001  # Adapt if needed\n\nPORT_NGINX=81  # Adapt if needed\n\nPORT_SERVERMETADB=3001  # Adapt if needed\n\nPORT_ADMIN=3000  # Adapt if needed\n\n```\n\n### React .env\nPlace an .env in the `./client` folder\n\n```\nVITE_APP_HOST=\u003cyourHostURL\u003e # e.g localhost\n```\n\n### Launching the system\nAll containers can be launched by the command\n```\ndocker-compose up -d --scale broker=\u003cnumberOfBrokersToStart\u003e --scale serverfastify=\u003cnumberOfFastifyServersToStart\u003e --build\n```\nThe system is fully booted when the container createuser-1 has exited. This behaviour is expected.\n\n### Troubleshooting the system startup\n\nDepending on your used hardware it can be the case that the metadbServer tries to connect to the database before it is set up.\nIn this case please restart your metadbServer-containers manually or adjust the sleep in the `app.js` of the metadbServer to a value that \nthe system starts without the containers exiting.\n\n\n## Project Documentation\n\nA description of the structure and decisions in the project in german language is provided inside the `documentation`-Folder\n\nFurther information about used technologies can be found here:\n- [Docker-Documentation](https://docs.docker.com/manuals/)\n- [Nginx-Documentation](https://nginx.org/en/docs/)\n- [minIO-Documentation](https://min.io/docs/minio/container/index.html)\n- [React-Documentation](https://react.dev/learn)\n- [Fastify-Documentation](https://fastify.dev/docs/latest/Guides/)\n- [MariaDB-Documentation](https://mariadb.com/kb/en/documentation/)\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fth-projects%2Ffilenest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fth-projects%2Ffilenest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fth-projects%2Ffilenest/lists"}