2020-09-17 15:41:46 +01:00
2020-08-10 18:40:16 +01:00
2020-09-04 13:25:36 +01:00
2020-08-10 18:40:16 +01:00
2020-09-17 15:41:46 +01:00
2020-09-12 14:42:27 +01:00
2019-12-31 16:23:45 +01:00
2020-08-09 03:00:13 +01:00
2020-08-09 03:00:13 +01:00
2020-09-14 13:57:39 +00:00
2020-08-10 18:40:16 +01:00
2020-07-14 18:20:15 +01:00
2019-12-31 16:23:45 +01:00
2020-09-14 13:57:39 +00:00
2019-12-31 16:23:45 +01:00
2020-09-14 13:57:39 +00:00
2019-12-31 16:23:45 +01:00
2019-12-31 16:23:45 +01:00
2020-08-10 18:40:16 +01:00

privacy.sexy

Enforce privacy & security best-practices on Windows, because privacy is sexy 🍑🍆

contributions welcome Language grade: JavaScript Maintainability Tests status Quality checks status Security checks status Bump & release status Deploy status Auto-versioned by bump-everywhere

Get started

privacy.sexy application

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

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.4 .
      2. Run: docker run -it -p 8080:80 --rm --name privacy.sexy-0.7.4 undergroundwires/privacy.sexy:0.7.4

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.
      • Event driven as in components simply listens to events from the state and act accordingly.
    • Application Layer

DDD + vue.js

AWS Infrastructure

AWS solution

  • It uses infrastructure from the following repository: aws-static-site-with-cd
    • Runs on AWS 100% serverless and automatically provisioned using GitHub Actions.
    • 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 action
  • Everything that's merged in the master goes directly to production.

CI/CD to AWS with GitHub Actions

Languages
TypeScript 91.5%
Vue 6.3%
JavaScript 0.9%
SCSS 0.8%
Python 0.4%