AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing jhaals/yopass in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewYopass - Share Secrets Securely Yopass is a project for sharing secrets in a quick and secure manner. The sole purpose of Yopass is to minimize passwords floating around in ticket management systems, Slack messages, and emails. Messages are encrypted/decrypted locally in the browser and sent to Yopass without the decryption key, which is only visible once during encryption. Yopass then returns a one-time URL with a specified expiry date. There is no perfect way of sharing secrets online, and there is a trade-off in every implementation. Yopass is designed to be as simple and "dumb" as possible without compromising security. There's no mapping between the generated UUID and the user who submitted the encrypted message. It's always best to send all context except the password over another channel. **Demo available here**. It's recommended to host yopass yourself if you care about security. • End-to-End encryption using OpenPGP • Secrets can only be viewed once • No accounts or user management required • Secrets self destruct after X hours • Custom password option • Limited file upload functionality History Yopass was first released in 2014 and has since been maintained by me and contributed to by this fantastic group of contributors. Yopass is used by many large corporations, some of which are listed below. If you are using Yopass and want to support the project beyond code contributions, you can give thanks via email, consider donating, or give consent to list your company name as a user of Yopass in this readme. Trusted by • Doddle LTD • Spotify • Gumtree Australia Command-line interface The main motivation of Yopass is to make it easy for everyone to share secrets quickly via a simple web interface. A command-line interface is also provided to support use cases where program output needs to be shared. The following options are currently available to install the CLI locally. • Compile from source (requires Go >= v1.21) Installation / Configuration Here are the server configuration options. Command line flags: Encrypted secrets can be stored either in Memcached or Redis by changing the flag. Proxy Configuration When Yopass is deployed behind a reverse proxy or load balancer (such as Nginx, Caddy, Cloudflare, or AWS ALB), you may want to log the real client IP addresses instead of the proxy's IP. Yopass supports trusted proxy configuration for secure handling of headers. **Security Note**: X-Forwarded-For headers are only trusted when requests come from explicitly configured trusted proxies. This prevents IP spoofing from untrusted sources. Examples: Common Proxy Scenarios: • **Nginx/Apache**: Use the IP address of your reverse proxy server • **Cloudflare**: Use Cloudflare's IP ranges (available from their documentation) • **AWS ALB/ELB**: Use your VPC's CIDR block or the load balancer's subnet • **Docker networks**: Use the Docker network's gateway IP or subnet Without trusted proxies configured, Yopass will always use the direct connection IP for security, which is the recommended default behavior. Docker Compose Use the Docker Compose file to set up a Yopass instance with TLS transport encryption and automatic certificate renewal using Let's Encrypt. First, point your domain to the host where you want to run Yopass. Then replace the placeholder values for , , and in the docker-compose.yml file with your values. Change to the deployment directory and start the containers: Yopass will then be available under the domain you specified through / . Advanced users who already have a reverse proxy handling TLS connections can use the setup: Then point your reverse proxy to . Docker With TLS encryption Yopass will then be available on port 443 through all IP addresses of the host, including public ones. To limit availability to a specific IP address, use . Without TLS encryption (needs a reverse proxy for transport encryption): Then point your reverse proxy that handles TLS connections to . Kubernetes _This is meant to get you started, please configure TLS when running yopass for real._ Monitoring Yopass optionally provides metrics in the [OpenMetrics][] / [Prometheus][] text format. Use flag to let Yopass start a second HTTP server on that port making the metrics available on path . Supported metrics: • Basic [process metrics][] with prefix (e.g. CPU, memory, and file descriptor usage) • Go runtime metrics with prefix (e.g. Go memory usage, garbage collection statistics, etc.) • HTTP request metrics with prefix (HTTP request counter, and HTTP request latency histogram) [openmetrics]: https://openmetrics.io/ [prometheus]: https://prometheus.io/ [process metrics]: https://prometheus.io/docs/instrumenting/writing_clientlibs/#process-metrics Translations Yopass accepts translations for additional languages. The frontend includes internationalization support using react-i18next, see current translations. Translation contributions are welcome via pull requests, see example here for adding a new language.