89 lines
5.4 KiB
Markdown
89 lines
5.4 KiB
Markdown
# privacy.sexy
|
|
|
|
> Enforce privacy & security best-practices on Windows, because privacy is sexy 🍑🍆
|
|
|
|
[](./CONTRIBUTING.md)
|
|
[](https://lgtm.com/projects/g/undergroundwires/privacy.sexy/context:javascript)
|
|
[](https://codeclimate.com/github/undergroundwires/privacy.sexy/maintainability)
|
|
[](https://github.com/undergroundwires/privacy.sexy/actions)
|
|
[](https://github.com/undergroundwires/privacy.sexy/actions)
|
|
[](https://github.com/undergroundwires/privacy.sexy/actions)
|
|
[](https://github.com/undergroundwires/privacy.sexy/actions)
|
|
[](https://github.com/undergroundwires/privacy.sexy/actions)
|
|
[](https://github.com/undergroundwires/bump-everywhere)
|
|
|
|
## Get started
|
|
|
|
- Online version: [https://privacy.sexy](https://privacy.sexy)
|
|
- or download latest desktop version for [Windows](https://github.com/undergroundwires/privacy.sexy/releases/download/0.7.2/privacy.sexy-Setup-0.7.2.exe), [Linux](https://github.com/undergroundwires/privacy.sexy/releases/download/0.7.2/privacy.sexy-0.7.2.AppImage), [macOS](https://github.com/undergroundwires/privacy.sexy/releases/download/0.7.2/privacy.sexy-0.7.2.dmg)
|
|
- 💡 Come back regularly to apply latest version for stronger privacy and security.
|
|
|
|
[](https://privacy.sexy)
|
|
|
|
## Why
|
|
|
|
- You don't need to run any compiled software that has access to your system, just run the generated scripts.
|
|
- Have full visibility into what the tweaks do as you enable them.
|
|
- Ability to revert applied scripts
|
|
- Easily extendable
|
|
- Everything is open-sourced including both application and infrastructure
|
|
- Fully automated CI/CD pipeline using GitHub actions
|
|
- to AWS for provisioning serverless infrastructure
|
|
- for building and sharing the desktop applications
|
|
|
|
## Extend scripts
|
|
|
|
- Fork it & add more scripts in [application.yaml](src/application/application.yaml) and send a pull request 👌
|
|
- 📖 More: [extend scripts | CONTRIBUTING.md](./CONTRIBUTING.md#extend-scripts)
|
|
|
|
## Commands
|
|
|
|
- Project setup: `npm install`
|
|
- Testing
|
|
- Run unit tests: `npm run test:unit`
|
|
- Lint: `npm run lint`
|
|
- **Desktop app**
|
|
- Development: `npm run electron:serve`
|
|
- Production: `npm run electron:build` to build an executable
|
|
- **Webpage**
|
|
- Development: `npm run serve` to compile & hot-reload for development.
|
|
- Production: `npm run build` to prepare files for distribution.
|
|
- Or run using Docker:
|
|
1. Build: `docker build -t undergroundwires/privacy.sexy:0.7.2 .`
|
|
2. Run: `docker run -it -p 8080:80 --rm --name privacy.sexy-0.7.2 undergroundwires/privacy.sexy:0.7.2`
|
|
|
|
## Architecture
|
|
|
|
### Application
|
|
|
|
- Powered by **TypeScript**, **Vue.js** and **Electron** 💪
|
|
- and driven by **Domain-driven design**, **Event-driven architecture**, **Data-driven programming** concepts.
|
|
- Application uses highly decoupled models & services in different DDD layers.
|
|
- **Domain layer** is where the application is modelled with validation logic.
|
|
- **Presentation Layer**
|
|
- Consists of Vue.js components and other UI-related code.
|
|
- Desktop application is created using [Electron](https://www.electronjs.org/).
|
|
- Event driven as in components simply listens to events from the state and act accordingly.
|
|
- **Application Layer**
|
|
- Keeps the application state
|
|
- The [state](src/application/State/ApplicationState.ts) is a mutable singleton & event producer.
|
|
- The application is defined & controlled in a [single YAML file](src/application/application.yaml) (see [Data-driven programming](https://en.wikipedia.org/wiki/Data-driven_programming))
|
|
|
|

|
|
|
|
### AWS Infrastructure
|
|
|
|
[](https://github.com/undergroundwires/aws-static-site-with-cd)
|
|
|
|
- It uses infrastructure from the following repository: [aws-static-site-with-cd](https://github.com/undergroundwires/aws-static-site-with-cd)
|
|
- Runs on AWS 100% serverless and automatically provisioned using [GitHub Actions](.github/workflows/).
|
|
- Maximum security & automation and minimum AWS costs are the highest priorities of the design.
|
|
|
|
#### GitOps: CI/CD to AWS
|
|
|
|
- CI/CD is fully automated for this repo using different GIT events & GitHub actions.
|
|
- Versioning, tagging, creation of `CHANGELOG.md` and releasing is automated using [bump-everywhere](https://github.com/undergroundwires/bump-everywhere) action
|
|
- Everything that's merged in the master goes directly to production.
|
|
|
|
[](.github/workflows/)
|