{"id":20610452,"url":"https://github.com/tywil04/passwordmanager","last_synced_at":"2026-01-18T02:55:50.258Z","repository":{"id":66225965,"uuid":"599008941","full_name":"tywil04/PasswordManager","owner":"tywil04","description":"Simple PasswordManager written using Go and Svelte. Its simple and insecure and it was created as part of a college assignment.","archived":false,"fork":false,"pushed_at":"2023-06-25T17:38:41.000Z","size":1096,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-17T03:24:51.956Z","etag":null,"topics":["aes-256-cbc","college","college-project","computer-science","cryptography","email","email-alias","gin-gonic","golang","gpl3","insecure","pbkdf2","svelte","svelte-kit"],"latest_commit_sha":null,"homepage":"","language":"Go","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/tywil04.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":"2023-02-08T09:04:56.000Z","updated_at":"2024-02-13T04:49:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"9ba9f301-c706-4612-bdce-0722706d76fe","html_url":"https://github.com/tywil04/PasswordManager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tywil04%2FPasswordManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tywil04%2FPasswordManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tywil04%2FPasswordManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tywil04%2FPasswordManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tywil04","download_url":"https://codeload.github.com/tywil04/PasswordManager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242257866,"owners_count":20098224,"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":["aes-256-cbc","college","college-project","computer-science","cryptography","email","email-alias","gin-gonic","golang","gpl3","insecure","pbkdf2","svelte","svelte-kit"],"created_at":"2024-11-16T10:16:51.293Z","updated_at":"2026-01-18T02:55:50.229Z","avatar_url":"https://github.com/tywil04.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Password Manager\nA password manager written using Golang (Gin framework) and SvelteKit for the Backend and Frontend respectively.\n\nThis is for my Computer Science NEA, this code has not been security audited and shouldn't be used for any application which requires security in any form whatsoever.\n\n## Building and Running\n### Prerequisites\nTo build and run this project, you need to have the following installed:\n- `nodejs`: This is required to compile Svelte Frontend.\n- `yarn`: This is the tool used to install packages for the Svelte Frontend.\n- `golang`: This is the library for Go which means you can build/run this project.\n- `git`: Required to clone this repo.\n\n### Building\n```\ngit clone https://github.com/tywil04/PasswordManager      # Clone this repo\ncd PasswordManager                                        # Enter the cloned repo \ngo generate ./...                                         # Generate DB and compile Svelte Frontend\ngo build server.go                                        # Build the project into a single executable\n```\nOnce the project has been built, you run it simply by running the executable (provided you are in the same directory you built the project from): `./server`.\n\n### Developing\nTo develop the application, you must have gotten to a stage where you can run the application. The best way to develop is to start a UI-less instance of the golang server with \n```\nDISABLE_UI=true go run server.go\n``` \nand then in a new terminal run\n```\ncd ui/\nyarn dev\n```\nConnect to the vite server from `yarn dev`, this gives you hot-reloading so when you make the change to part of the ui, the web browsers instantly reflects this change. The backend server is running and is getting the `/api` requests from the vite server because vite has been configured to proxy api requests.\n\n## Environment Variables\nEnvironment variables are used to store configuration data. Heres a list of variables that can be modified. This variables can be set with a `.env` file in the same directory as the executable.\n\nAll environment variables are required unless explicitly mentioned otherwise, if you do not include a required environment variable, things might not work as expected.\n\n### General\n- `ENVIRONMENT` *(optional, default is production)*: This is used to determin the environment the application should be running in. Allowed options are `production` and `development`.\n\n- `ALLOWED_ORIGINS` *(optional, default is all origins)*: This is a comma seperated list of allowed origins (this is also used to define allowed origins for the webauthn relying party). e.g `http://localhost:8080,http://localhost:5173`.\n\n- `DB_PATH`: This is the path for your db, this project uses sqlite3. Example value: `./ent/dev.db`.\n\n- `SERVER_ADDRESS`: This how Go binds the server, its expected in a format `HOSTNAME:PORT`. Example value: `0.0.0.0:8001` (Allow connection from any interface on port 8001).\n\n- `DISABLE_API` *(optional, default is false)*: This is used to disable the API section of the webserver.\n\n- `DISABLE_UI` *(optional, default is false)*: This is used to disable the UI section of the webserver.\n\n### Email\n- `SMTP_HOST`: This is the host for the SMTP server to use to send email addresses. Example value: `smtp.example.org`.\n\n- `SMTP_PORT`: This is the port for the SMTP server to send email addresses. Example value: `587`.\n\n- `SMTP_FROM`: This is the email address that the message should be from. Example value: `noreply@example.org`.\n\n- `SMTP_USERNAME`: This is the username to access your SMTP server.\n\n- `SMTP_PASSWORD`: This is the password to access your SMTP server.\n\n### WebAuthn\n- `RP_DISPLAY_NAME`: This is the display name for a relying party..\n\n- `RP_ID`: This is the relying partys origin domain. Example value: `localhost`.\n\n- `RP_ICON`: This is a URL to the icon for a relying party. This is optional, a blank value can be set.\n\n### Crypto\n- `CRYPTO_PEPPER` *(optional, default is blank)*: This is a random string that if set will be added to every `masterHash` before being strengthened for added security. It can technically be any string however a random string will be most beneficial.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftywil04%2Fpasswordmanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftywil04%2Fpasswordmanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftywil04%2Fpasswordmanager/lists"}