undergroundwires 61b475fa8d Migrate from TSLint to ESLint
TSLint deprecated and is being replaced by ESLint.

Add Vue CLI plugin (@vue/cli-plugin-eslint) using:
`vue add @vue/cli-plugin-eslint`. It also adds `.eslintrc.js` manually
for Cypress since Vue CLI for ESLint misses it (vuejs/vue-cli#6892).

Also rename `npm run lint:vue` to `npm run lint:eslint` for better
clarification.

This commit disables all rules that the current code is not compliant
with. This allows for enabling them gradually and separating commits
instead of mixing ESLint introduction with other code changes.

AirBnb is chosen as base configuration.

"Standard" is not chosen due to its poor defaults. It makes code cleaner
but harder to maintain:
  - It converts interfaces to types which is harder to read.
  - Removes semicolons that helps to eliminate some ambigious code.

"Airbnb" on the other hand helps for easier future changes and
maintinability:
  - Includes more useful rules.
  - Keeps the semicolons and interfaces.
  - Enforces trailing commas that makes it easier to delete lines later on.
  - Delete branches: standard, prettier.
2021-12-27 22:42:27 +01:00
2021-12-27 22:42:27 +01:00
2020-08-10 18:40:16 +01:00
2021-12-19 01:48:29 +01:00
2021-12-27 22:42:27 +01:00
2021-01-13 16:31:20 +01:00
2021-12-27 22:42:27 +01:00
2021-12-27 22:42:27 +01:00
2019-12-31 16:23:45 +01:00
2020-08-09 03:00:13 +01:00
2021-12-27 22:42:27 +01:00
2021-12-27 22:42:27 +01:00
2021-12-04 16:06:15 +00:00
2020-07-14 18:20:15 +01:00
2019-12-31 16:23:45 +01:00
2021-12-27 22:42:27 +01:00
2019-12-31 16:23:45 +01:00
2021-12-19 01:48:29 +01:00
2021-04-15 18:34:40 +02:00

privacy.sexy

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

contributions are welcome
Language grade: JavaScript/TypeScript Maintainability
Unit tests status Integration tests status E2E tests status
Quality checks status Security checks status
Git release status Site release status Desktop application release status
Auto-versioned by bump-everywhere

Get started

  • Online version at https://privacy.sexy
    • 💡 No need to run any compiled software on your computer.
  • Alternatively download offline version for Windows, macOS or Linux.
    • 💡 Single click to execute your script.
  • Come back regularly to apply latest version for stronger privacy and security.

privacy.sexy application

Why

  • Rich tweak pool to harden security & privacy of the OS and other software on it
  • Free (both free as in beer and free as in speech)
  • No 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 (undo) applied scripts
  • Everything is transparent: both application and its infrastructure are open-source and automated
  • Easily extendable with own powerful templating language
  • Each script is independently executable without cross-dependencies

Extend scripts

  • You can either create an issue
  • Or send a PR:
    1. Fork the repository
    2. Add more scripts in respective script collection in collections folder.
      • 📖 If you're unsure about the syntax you can refer to the collection files | documentation.
      • 🙏 For any new script, please add revertCode and docs values if possible.
    3. Send a pull request 👌

Commands

  • Project setup: npm install
  • Testing
    • Run unit tests: npm run test:unit
    • Run integration tests: npm run test:integration
    • Run e2e (end-to-end) tests
      • Interactive mode with GUI: npm run test:e2e
      • Headless mode without GUI: npm run test:e2e -- --headless
    • 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.11.2 .
      2. Run: docker run -it -p 8080:80 --rm --name privacy.sexy-0.11.2 undergroundwires/privacy.sexy:0.11.2

Architecture overview

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.
  • 📖 Read more on • PresentationApplication

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.
  • 📖 Read more on CI/CD pipelines

CI/CD to AWS with GitHub Actions

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