{"id":22618783,"url":"https://github.com/kouprlabs/voltaserve","last_synced_at":"2025-05-15T19:06:51.187Z","repository":{"id":164986638,"uuid":"603971444","full_name":"kouprlabs/voltaserve","owner":"kouprlabs","description":"⚡️ Cloud Storage for Creators","archived":false,"fork":false,"pushed_at":"2025-05-06T16:12:54.000Z","size":160117,"stargazers_count":316,"open_issues_count":47,"forks_count":17,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-11T05:48:52.832Z","etag":null,"topics":["3d-models","cloud","content-search","creators","file-sharing","mosaic-images","natural-language-processing","ocr","self-hosted","storage","video-streaming"],"latest_commit_sha":null,"homepage":"https://voltaserve.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kouprlabs.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,"zenodo":null}},"created_at":"2023-02-20T03:48:45.000Z","updated_at":"2025-05-10T00:18:41.000Z","dependencies_parsed_at":"2024-04-20T11:33:43.705Z","dependency_job_id":"f1c0d403-4e0e-4d9d-a20a-1abd9c3bf691","html_url":"https://github.com/kouprlabs/voltaserve","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kouprlabs%2Fvoltaserve","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kouprlabs%2Fvoltaserve/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kouprlabs%2Fvoltaserve/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kouprlabs%2Fvoltaserve/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kouprlabs","download_url":"https://codeload.github.com/kouprlabs/voltaserve/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254404358,"owners_count":22065641,"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":["3d-models","cloud","content-search","creators","file-sharing","mosaic-images","natural-language-processing","ocr","self-hosted","storage","video-streaming"],"created_at":"2024-12-08T21:09:35.811Z","updated_at":"2025-05-15T19:06:51.174Z","avatar_url":"https://github.com/kouprlabs.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD033 MD041 --\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg height=\"70\" src=\".assets/brand-20250421130000.svg\" /\u003e\n  \u003ch1 align=\"center\"\u003eVoltaserve\u003c/h1\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eCloud Storage for Creators\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://apps.apple.com/app/id6744360805\"\u003e\n    \u003cimg height=\"40\" src=\".assets/app-store-20250424234000.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://apps.apple.com/mac/app/id6744360805\"\u003e\n    \u003cimg height=\"40\" src=\".assets/mac-app-store-20250424234000.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://youtu.be/sCfvdj49WBw\"\u003e▶ Talk to your files and manilulate them\u003c/a\u003e\n  \u003cbr/\u003e\n  \u003ca href=\"https://youtu.be/Uf3EWb2hDfs\"\u003e▶ Your creative private cloud\u003c/a\u003e\n\u003c/p\u003e\n\n[![Join our Discord](https://img.shields.io/badge/Discord-5865F2?logo=discord\u0026logoColor=white\u0026label=Join%20us\u0026style=for-the-badge)](https://discord.gg/qYXtsMpqMR)\n\nVoltaserve is the cloud storage where you can talk to your files and manipulate them. This is unprecedented, and it’s designed for creative minds. If you are a digital artist, photographer, content creator, journalist, or a musician — Voltaserve is built for you.\n\n\u003cimg src=\".assets/collage-20250421130000.png\"\u003e\n\n## Getting Started\n\n### Optional Murph Setup\n\nTo take advantage of Murph, you will need a Google Gemini API key, in this case, edit the [.env](.env) file as follows:\n\n```properties\nVOLTASERVE_LLM_GEMINI_API_KEY=YOUR_GOOGLE_GEMINI_API_KEY_HERE\n```\n\nReplace the placeholder `YOUR_GOOGLE_GEMINI_API_KEY_HERE` with the actual value.\n\n### Run Your Instance\n\nPull images: (_recommended for most users_)\n\n```shell\ndocker compose pull\n```\n\nOptionally build the images from the source: (_can be skipped if you pulled the images_)\n\n```shell\ndocker compose build\n```\n\nStart containers:\n\n```shell\ndocker compose up -d\n```\n\nWait until the following containers are running:\n\n- `voltaserve-api`\n- `voltaserve-idp`\n- `voltaserve-conversion`\n- `voltaserve-webdav`\n- `voltaserve-language`\n- `voltaserve-mosaic`\n- `voltaserve-console`\n- `voltaserve-murph`\n- `voltaserve-ui`\n\n\u003e **Note**\n\u003e\n\u003e You can check that by running the command `docker ps` and look at the `STATUS` column.\n\nCreate an account and sign in:\n\n1. Go to the **sign up page** \u003chttp://localhost:3000/sign-up\u003e and create an account.\n\n2. Open MailDev \u003chttp://localhost:8025\u003e, select the received email and click the **confirm email** link.\n\n3. Finally, go to the **sign in page** \u003chttp://localhost:3000/sign-in\u003e and login with your credentials.\n\n\u003e **Note**\n\u003e\n\u003e Voltaserve supports [WebDAV](https://en.wikipedia.org/wiki/WebDAV) and by default it listens on port `8082`.\n\n### The iOS App (iPad, iPhone and Mac)\n\nDownload on the [App Store](https://apps.apple.com/app/id6744360805), or the [Mac App Store](https://apps.apple.com/mac/app/id6744360805).\n\nWatch [Murph in action](https://youtu.be/sCfvdj49WBw) on the iPad and iPhone, or a [walkthrough video](https://youtu.be/RpHp0OEa_o8) of various capabilities.\n\nVoltaserve’s iOS app defines a gold standard: it’s fully native, optimized for iPad and iPhone, runs beautifully on the Mac, features a slick user interface with real-time updates, and is built using Apple’s flagship framework, SwiftUI.\n\nAfter launching the app, you’ll be asked to review and accept the Privacy Policy and Terms \u0026 Conditions.\n\nOnce accepted, you’ll see a button labeled “New Server” in the center of the screen under the logo. Please tap it and enter the following details to connect to your Voltaserve instance:\n\n| Field                 | Value                       |\n| --------------------- | --------------------------- |\n| Name                  | My Voltaserve               |\n| API URL               | `http://your-hostname:8080` |\n| Identity Provider URL | `http://your-hostname:8081` |\n| Murph URL (optional)  | `http://your-hostname:8087` |\n\nReplace `your-hostname` with the actual hostname, domain or IP address of your Voltaserve instance.\n\n\u003e **Note**\n\u003e\n\u003e Murph URL is optional, it can be omitted if you don't have a Google Gemini API key.\n\nYou can keep the \"Sign In Strategy\" as \"Apple\" so you can sign in easily with your Apple account, or switch it to \"Local\" for a traditional sign up with email confirmation, for this you need to make sure your SMTP server is up and running as documented further down.\n\nAfter saving, you will be able to sign in.\n\nThe core of the iOS app is open source and available [here](https://github.com/kouprlabs/voltaserve-ios).\n\n### Mount the Drive on Your Computer\n\nWe recommend the following third-party applications:\n\n- [Mountainduck](https://mountainduck.io)\n- [Owlfiles](https://www.skyjos.com/owlfiles)\n\n### Connect with WebDAV\n\nWe recommend the following third-party applications:\n\n- [Documents](https://readdle.com/documents)\n- [Owlfiles](https://www.skyjos.com/owlfiles)\n- [Cyberduck](https://cyberduck.io)\n- [WinSCP](https://winscp.net)\n- [Rclone](https://rclone.org/webdav)\n\n### Configuration\n\nUpdate the `VOLTASERVE_HOSTNAME` environment variable in [.env](.env) file to match your hostname (it can optionally be an IP address as well):\n\n```properties\nVOLTASERVE_HOSTNAME=\"your-hostname\"\n```\n\nUpdate the following environment variables in [.env](.env) file to match your SMTP server:\n\n```properties\nVOLTASERVE_SMTP_HOST=\"your-smtp-hostname\"\nVOLTASERVE_SMTP_PORT=587\nVOLTASERVE_SMTP_SECURE=true\nVOLTASERVE_SMTP_USERNAME=\"your-smtp-user\"\nVOLTASERVE_SMTP_PASSWORD=\"your-smtp-password\"\nVOLTASERVE_SMTP_SENDER_ADDRESS=\"no-reply@your-domain\"\nVOLTASERVE_SMTP_SENDER_NAME=\"Voltaserve\"\n```\n\nThe port `3000` is used for the UI, therefore it needs to be open and accessible from the outside. One way of doing it in Linux is by using `ufw`:\n\n```shell\nsudo ufw allow 3000\n```\n\n\u003e **Note**\n\u003e\n\u003e You can change the UI port to something else, other than `3000`, like `80` for example. This can be done by editing the `VOLTASERVE_UI_PORT` environment variable in [.env](.env) file as follows:\n\n```properties\nVOLTASERVE_UI_PORT=80\n```\n\nThe port `8082` is used for WebDAV, you can change it by editing the `VOLTASERVE_WEBDAV_PORT` environment variable in [.env](.env) file as follows:\n\n```properties\nVOLTASERVE_WEBDAV_PORT=8082\n```\n\nThe port needs to be open and accessible from the outside. One way of doing it in Linux is by using `ufw`:\n\n```shell\nsudo ufw allow 8082\n```\n\nOther ports can be changed as well by editing their respective environment variables in [.env](.env) file.\n\n## Troubleshooting\n\n**My containers have issues starting up, what should I do?**\n\nOne reason might be that some ports are already allocated on your machine, in this case you can change the Voltaserve ports in [.env](.env) file.\n\n**I'm not happy with `localhost`, can I change it?**\n\nYou can achieve this by changing the `VOLTASERVE_HOSTNAME` environment variable in [.env](.env) file.\n\nIt can be any IP address, like:\n\n```properties\nVOLTASERVE_HOSTNAME=\"192.168.1.100\"\n```\n\nOr any custom hostname, like:\n\n```properties\nVOLTASERVE_HOSTNAME=\"your-hostname\"\n```\n\n## Development\n\nTo setup a development environment for the purpose of developing and debugging Voltaserve, please read the development documentation available [here](DEVELOPMENT.md).\n\n## Licensing\n\nVoltaserve is released under the [Business Source License 1.1](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkouprlabs%2Fvoltaserve","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkouprlabs%2Fvoltaserve","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkouprlabs%2Fvoltaserve/lists"}