{"id":17053781,"url":"https://github.com/relrin/helenae","last_synced_at":"2026-04-04T16:33:05.815Z","repository":{"id":14220106,"uuid":"16926998","full_name":"Relrin/Helenae","owner":"Relrin","description":"Simplest analog of distributed file storages such as DropBox/SugarSync/etc.","archived":false,"fork":false,"pushed_at":"2017-03-30T06:52:25.000Z","size":3220,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T05:43:59.540Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Relrin.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}},"created_at":"2014-02-17T21:19:48.000Z","updated_at":"2021-02-11T19:43:27.000Z","dependencies_parsed_at":"2022-09-19T00:02:08.521Z","dependency_job_id":null,"html_url":"https://github.com/Relrin/Helenae","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Relrin/Helenae","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Relrin%2FHelenae","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Relrin%2FHelenae/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Relrin%2FHelenae/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Relrin%2FHelenae/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Relrin","download_url":"https://codeload.github.com/Relrin/Helenae/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Relrin%2FHelenae/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31405704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-10-14T10:13:13.715Z","updated_at":"2026-04-04T16:33:05.793Z","avatar_url":"https://github.com/Relrin.png","language":"Python","readme":"Helenae\t[![Build Status](https://travis-ci.org/Relrin/Helenae.svg)](https://travis-ci.org/Relrin/Helenae)\n=======\n\nSimplest analog of distributed file storages such as DropBox/SugarSync/etc.\n\nUsing\n-------\n- Python 2.7.5\n- PostgreSQL\n- Twisted\n- Autobahn.ws\n- OpenSSL\n- SQLAlchemy ORM\n- Flask\n- pytest\n- wxPython\n- PyCrypto with [python-cryptoplus](https://github.com/doegox/python-cryptoplus) extension\n\nFeatures\n-------\n- opening/writing/renaming/removing/transfering file or catalog\n- synchronization files\n- encryption by AES-256/Serpent/Twofish\n- console/GUI clients\n- supporting multiple file servers\n- shared files between users (via creating links)\n\nScreenshots:\n-------\nConsole application:  \n    ![alt text](https://raw.githubusercontent.com/Relrin/Helenae/master/screenshots/client_console.png)\nClient GUI:  \n    ![alt text](https://raw.githubusercontent.com/Relrin/Helenae/master/screenshots/client_gui.png)\n\nRunning\n-------\n\nFor start working with distributed file storage you will need:  \n1) Run the server.py by doing\n```\npython server.py [port]\n```    \n2) Start few (minimum one) file servers\n```\n# take example of fs.json\npython fileserver.py [path_to_config.json] [port]\n```\n[path_to_config.json] its configuration file for fileserver.py, which contains:\n- \"path\" its a place on HDD/SSD, where all files will be stored\n- \"base_dir\" its just name for basic directory, which using for creating with \"path\" argument \n- \"server_ip\" means IP-address of this computer, which get access to connecting new users\n- \"server_port\" means port, which listening server for connected users \n- \"debug\" - boolean flag, which means sending information about fileserver to server (by default its shall be false)\n\n3) Open in your browser\n\n    https://localhost:8080/\n\nor run the Python console client\n```\npython client_console.py [port]\n```\nor run the Python GUI client\n```\npython client_gui.py [port]\n```    \nNOTE: by default client applications using port=9000\n\nCreating Server Keys and Certificates\n-------------------------------------\n\nTLS server keys and certificate can be generated by doing:\n```\nopenssl genrsa -out server.key 2048\nopenssl req -new -key server.key -out server.csr\nopenssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt\nopenssl x509 -in server.crt -out server.pem\n```\nTo run the server 2 files are required.\n\nPrivate key (with *no* passphrase set!):\n```\nserver.key\n```\nCertificate:\n```\nserver.crt\n```\nThanks\n-------------------------------------\n\nBig thanks to:\n- Jean-Paul Calderone [creator of Twisted] for help and advices on event-based programming with Twisted\n- Tobias Oberstein [creator of Autobahn.ws] for programming tips on Autobahn.ws\n\nEspecially thanks http://www.fatcow.com/ for free icons\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frelrin%2Fhelenae","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frelrin%2Fhelenae","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frelrin%2Fhelenae/lists"}