{"id":22185123,"url":"https://github.com/voltstro/voltprojects","last_synced_at":"2025-07-26T19:31:41.042Z","repository":{"id":45846059,"uuid":"506947351","full_name":"Voltstro/VoltProjects","owner":"Voltstro","description":"VoltProjects - An online documentation building and hosting service. Built with ASP.NET Core.","archived":false,"fork":false,"pushed_at":"2024-09-17T13:39:46.000Z","size":1156,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-09-17T16:34:41.147Z","etag":null,"topics":["asp-net-core","csharp","documentation","documentation-tool","dotnet"],"latest_commit_sha":null,"homepage":"https://projects.voltstro.dev","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Voltstro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-24T09:11:12.000Z","updated_at":"2024-09-17T13:24:38.000Z","dependencies_parsed_at":"2024-01-01T04:46:50.636Z","dependency_job_id":"bc7ce80d-63f7-43f7-8c8e-c66fc9d75f50","html_url":"https://github.com/Voltstro/VoltProjects","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voltstro%2FVoltProjects","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voltstro%2FVoltProjects/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voltstro%2FVoltProjects/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voltstro%2FVoltProjects/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Voltstro","download_url":"https://codeload.github.com/Voltstro/VoltProjects/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227707674,"owners_count":17807522,"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":["asp-net-core","csharp","documentation","documentation-tool","dotnet"],"created_at":"2024-12-02T10:15:10.188Z","updated_at":"2025-07-26T19:31:41.035Z","avatar_url":"https://github.com/Voltstro.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Volt Projects\n\n[![License](https://img.shields.io/github/license/voltstro/VoltProjects.svg)](/LICENSE)\n[![Build](https://img.shields.io/azure-devops/build/Voltstro/1cec7788-61ae-4aca-9579-dec5233a934e/6?logo=azure-pipelines)](https://dev.azure.com/Voltstro/VoltProjects/_build?definitionId=6)\n[![Docs Status](https://img.shields.io/uptimerobot/status/m794227043-7e2bf837661fcd75d2af6804?label=Docs)](https://projects.voltstro.dev/)\n[![Discord](https://img.shields.io/badge/Discord-Voltstro-7289da.svg?logo=discord)](https://discord.voltstro.dev) \n[![YouTube](https://img.shields.io/badge/Youtube-Voltstro-red.svg?logo=youtube)](https://www.youtube.com/Voltstro)\n\nVolt Projects - An automatic documentation building and hosting service.\n\n## What does it do?\n\nVolt Projects main purpose is to host a project's documentation. It handles the process of automatically updating and deploying a project's documentation. Volt Projects it self does not generate any static files, instead it can ingest documentation from any existing static doc builder.\n\n## Getting Started\n\n### Database Setup\n\nFor either hosting or development of Volt Projects, you will need a Postgres 17 database. You can really use whatever service you want to run Postgres, ([local install](https://www.postgresql.org/download/), [Docker](https://hub.docker.com/_/postgres/), etc), as long as VP can connect to it using a [connection string](https://www.npgsql.org/doc/connection-string-parameters.html).\n\nYou will obviously need the database for VP and a user to access the DB.\n\n```sql\nCREATE USER voltprojects WITH INHERIT LOGIN ENCRYPTED PASSWORD 'Testing123';\n\nCREATE DATABASE voltprojects WITH\n\tOWNER = 'voltprojects';\n\n-- Execute on new DB\nGRANT USAGE ON SCHEMA public TO voltprojects;\n```\n\n\u003e [!NOTE]\n\u003e Do not use this password in a production environment! If your dumb enough to not realize this, then you should definitely not be hosting a production instance.\n\n### Object Storage\n\nVolt Project uses \"object storage\" for storage of project's external assets, such as images and scripts. Supported object storage providers are [Azure Storage](https://learn.microsoft.com/en-au/azure/storage/common/storage-account-overview), [AWS S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) (or other S3 implementations such as [Cloudflare's R2](https://developers.cloudflare.com/r2/)) and [Google Cloud Storage](https://cloud.google.com/storage/docs/).\n\nYou will need to use one of these providers (or an emulator such [Azurite](https://learn.microsoft.com/en-au/azure/storage/common/storage-use-azurite)). You will also need to configure the container to host to blobs publicly.\n\nConfigure the object storage provider using `Config.ObjectStorageProvider` in the appsettings for both Server and Builder. The credentials for storage providers are always provided by environment variables.\n\n### Hosting\n\nWe provide VoltProject as Docker images, one for Server and one for Builder.\n\n- [VPServer](https://hub.docker.com/r/voltstro/vpserver)\n- [VPBuilder](https://hub.docker.com/r/voltstro/vpbuilder)\n\nYou can run these apps together with Docker Compose, using a `docker-compose.yml` file like so:\n\n```yml\nversion: \"3.9\"\n\nservices:\n  server:\n    image: voltstro/vpserver:latest\n    container_name: vpserver\n    restart: unless-stopped\n    ports:\n      - \"8080:80\"\n    environment:\n      - ConnectionStrings__ServerConnection\n      - Config__ObjectStorageProvider__Provider\n      - Config__ObjectStorageProvider__ContainerName\n      - Config__ObjectStorageProvider__BasePath\n      - Config__ObjectStorageProvider__SubPath\n      - Config__PublicUrl\n      - Config__OpenIdConfig__Authority\n      - Config__OpenIdConfig__ClientId\n      - Config__OpenIdConfig__ClientSecret\n      - VP_AZURE_CREDENTIAL\n\n  builder:\n    image: voltstro/vpbuilder:latest\n    container_name: vpbuilder\n    restart: unless-stopped\n    environment:\n      - ConnectionStrings__BuilderConnection\n      - Config__ObjectStorageProvider__Provider\n      - Config__ObjectStorageProvider__ContainerName\n      - Config__ObjectStorageProvider__BasePath\n      - Config__ObjectStorageProvider__SubPath\n      - VP_AZURE_CREDENTIAL\n```\n\n### Build\n\n#### Prerequisites\n\n```\n.NET 9 SDK\nNodeJs 22\nPostgres 17\n```\n\n### Setup\n\n1. Build the client project by using these commands in the `src/VoltProjects.Client` directory.\n\n    ```\n    pnpm install\n    pnpm run build\n    ```\n\n2. Update `appsettings.json` in both Builder and Server accordingly for what you need.\n\n3. Build the .NET projects using your IDE of choice, or `dotnet build` in the `src/` directory.\n\n4. Run either the Server or Builder project for it to migrate the database. You can close it once the DB has been migrated.\n\n5. Run Builder and Server projects. Make sure everything in builder goes well. You can access the server on `http://localhost:5000`.\n\n#### Docker-Compose\n\nAn all-in-one Docker compose file is provided in `src/docker-compose.yml`. This will setup Builder, Server, Postgres and Azurite for you.\n\n## Security\n\nPlease see [SECURITY.md](/SECURITY.md) for details about security.\n\n## Authors\n\n**Voltstro** - *Initial work* - [Voltstro](https://github.com/Voltstro)\n\n## License\n\nThis project is licensed under the GPL-3.0 license - see the [LICENSE](/LICENSE) file for details.\n\nThe content that VoltProjects hosts may be under a different license. See that project's git repo for information on it's license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoltstro%2Fvoltprojects","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoltstro%2Fvoltprojects","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoltstro%2Fvoltprojects/lists"}