{"id":19658749,"url":"https://github.com/flo0807/share-a-secret","last_synced_at":"2025-12-30T12:54:59.806Z","repository":{"id":203568612,"uuid":"708095769","full_name":"Flo0807/share-a-secret","owner":"Flo0807","description":"Share a Secret is an open-source and self-hosted secret sharing platform built with Elixir, Phoenix and daisyUI.","archived":false,"fork":false,"pushed_at":"2024-05-22T05:59:46.000Z","size":823,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-22T06:45:29.778Z","etag":null,"topics":["elixir","phoenix","phoenix-liveview","self-hosted","tailwindcss"],"latest_commit_sha":null,"homepage":"https://share-a-secret.fly.dev","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Flo0807.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-10-21T14:10:34.000Z","updated_at":"2024-05-30T07:58:59.274Z","dependencies_parsed_at":"2023-12-31T10:23:11.362Z","dependency_job_id":"465b4129-e84e-4526-beb2-80d1f4d486ff","html_url":"https://github.com/Flo0807/share-a-secret","commit_stats":null,"previous_names":["flo0807/share-a-secret"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flo0807%2Fshare-a-secret","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flo0807%2Fshare-a-secret/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flo0807%2Fshare-a-secret/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flo0807%2Fshare-a-secret/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Flo0807","download_url":"https://codeload.github.com/Flo0807/share-a-secret/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243648363,"owners_count":20324866,"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":["elixir","phoenix","phoenix-liveview","self-hosted","tailwindcss"],"created_at":"2024-11-11T15:38:49.659Z","updated_at":"2025-12-30T12:54:59.768Z","avatar_url":"https://github.com/Flo0807.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Share a Secret\n\n**Demo:** [share-a-secret.fly.dev](https://share-a-secret.fly.dev/)\n\nShare a Secret is an open-source and self-hosted secret sharing platform.\n\nIt lets you securely share information with trusted people through a link. This can be anything - a message, a password or a piece of information you want to share discreetly.\n\nOnce you have entered a secret, you can configure how many links you need and how long the secret will be available. This will generate links that you can copy and give to trusted people. \nOnce they have accessed the secret, the link is no longer valid. \n\nThe secret is stored in the database using a symmetric 128bit AES encryption. The decryption key is part of the URL, adding an extra layer of security. \nOnly the person with the link can decrypt the secret, ensuring it is securely delivered to the intended recipient. This means that even if someone gains access to the secret itself, they won't be able to decrypt it without the specific key in the URL.\n\nThe URLs are not stored. This means that as long as you keep the links private, it is impossible for anyone to access the decrypted secret.\n\nTech stack:\n- Elixir, Phoenix, LiveView, TailwindCSS, daisyUI, PostgreSQL\n\nThe idea for this project came from https://github.com/Luzifer/ots. I wanted to build something similar using Elixir and Phoenix. If you want to be able to share files as well, check out the linked project.\n\n## Self-Hosted\n \nIn order to add an extra layer of security, you should host this application yourself. This way you can be sure that the secrets are only stored on your server and not on a third-party server. \nTo keep it simple, we provide a [Docker image](https://github.com/Flo0807/share-a-secret/pkgs/container/share-a-secret) you can use to run the application.\n\nYou can use the following tags:\n- `latest`: The latest stable version of the application\n- `\u003cversion\u003e`: A specific version of the application (see [releases](https://github.com/Flo0807/share-a-secret/releases) for all released versions)\n- `main`: The latest version of the `main` branch\n\n### Docker Compose\n\nThe easiest way to run the application is using Docker Compose. You can use the `compose.example.yml` file to get started.\n\nFirst you have to create a secret key for the application:\n  \n```bash\nmix phx.gen.secret\n```\n\nCopy the output and paste it into the `SECRET_KEY_BASE` environment variable in the `compose.yml` file.\n\nAdjust the other environment variables as needed.\n\nThen you can start the application with:\n\n```bash\ndocker compose up\n```\n\nThe first time you start, you will need to run the database migrations before you can use the application. Optionally, if you are not using the default database from your database container, you will also need to create the database.\n\nThe following commands need to be run inside the running container. You can do this for example with `docker compose run app \u003ccommand\u003e` or by entering the container.\n\nCreate the database:\n\n```bash\n/app/bin/create\n```\n\nRun the migrations:\n\n```bash\n/app/bin/migrate\n```\n\nYou can now access the application at configured host and port. We recommend using a reverse proxy like nginx to add SSL encryption.\n\n## Development\n\nSetup and run PostgreSQL database, e.g. with Docker:\n\n```bash\ndocker run --name postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres\n```\n\nConfigure credentials in `config/dev.exs`.\n\nRun `mix setup` to install and setup dependencies and database.\n\nStart Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server`.\n\nNow you can visit [`localhost:4000`](http://localhost:4000) from your browser.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflo0807%2Fshare-a-secret","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflo0807%2Fshare-a-secret","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflo0807%2Fshare-a-secret/lists"}