Skip to content

patrikx3/tools

Repository files navigation

NPM Donate for Corifeus / P3X Contact Corifeus / P3X Corifeus @ Facebook Uptime Robot ratio (30 days)

💣 Tools v2024.10.102

Bugs are evident™ - MATRIX️

NodeJS LTS is supported

Built on NodeJs version

v22.3.0

Description

This is an internal tool program (p3x) to manage a recursive async and serial command for NPM packages.

Install

sudo npm install -g p3x-tools --unsafe-perm=true --allow-root

Examples

All folders exclude node_modules and bower_components except it is included.

p3x docker clean # delete images the have exited
p3x docker clear # delete all images in docker
p3x docker free # delete exited containers
p3x pkg yarn install | <command> # installs recursive every project that has a package.json
p3x build yarn install  | <command>  # install recursive every package that has a corifeus-builder
p3x npm unpublish # unpublish every package from NPM except the last Minor version (Major.Minor.Build-Commit)
p3x link # links every recursive given package together
p3x git <command> # you can execute a command on every git dir, recursive
p3x rm <folder> # remove recursive the given folder
p3x ncu -u # updates recursive all packages
p3x git pull # recursive pull every folder
p3x git push # recursive push every folder
p3x git renew|truncate # remote all commits, from #1231 commit to #1
p3x git init repo-name # .git is not required, is auto added, post-update is generated so it is my own, specific for the patrikx3.com server git repo (it adds in the webhook), the names are only lower cased forcefully a-z, digit and dash.

and more ...

If you want the commands is serials, add the -s or --serial flag, otherwise all async.

etc ...

Dependencies Fix

dependencies-fix.json

Webpack repos

  • gitlist
  • redis-ui-material
  • fortune-cookie
  • corifeus-builder-angular
  • sygnus ngivr builder webpack

Default excludes from GitHub:

github.json

Github fork upstream

1 . Clone your fork:

git clone [email protected]:YOUR-USERNAME/YOUR-FORKED-REPO.git

2 . Add remote from original repository in your forked repository:

cd into/cloned/fork-repo  
git remote add upstream https://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git  
git fetch upstream  

3 . Updating your fork from original repo to keep up with their changes:

git pull upstream master
git merge upstream/master
git push

# or
git checkout dev
git pull upstream dev
git merge upstream/dev
git push

Warning / deprecate

npm deprecate <pkg>[@<version>] <message>
// or better
npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3"

Really make a bare repo to smaller

https://stackoverflow.com/questions/2116778/reduce-git-repository-size
https://stackoverflow.com/questions/3797907/how-to-remove-unused-objects-from-a-git-repository/14729486#14729486

git gc --prune=now --aggressive

Show available versions on NPM

# for example
npm show p3x-angular-compile versions --json

Verdaccio NPM fix

verdaccio/verdaccio#577

docker run --rm -it node:9.2.0-alpine sh
/ # npm login --registry https://npm.company.com
Username: admin
Password:
Email: (this IS public) [email protected]
Logged in as admin on https://npm.company.com/.
/ # cat ~/.npmrc
//npm.company.com/:_authToken=Rwl9t+GHjlgP+brFJ6WycIe1y6r3Z+ShUEqsLusmFC11w3n6ex8JdmkMoKv/0U/D
/ #

Another solution is like this:

# project .npmrc
registry = "https://registry.acmeco.com"
ca = null
always-auth = true

Swap for Docker

https://askubuntu.com/questions/417215/how-does-kernel-support-swap-limit

Edit:

sudo nano /etc/default/grub

Like:

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" 

Update:

sudo update-grub

Edit:

touch /etc/sysctl.d/90-swappiness.conf
nano /etc/sysctl.d/90-swappiness.conf
vm.swappiness=1

sudo reboot

How To Configure a Mail Server Using Postfix, Dovecot, MySQL, and SpamAssassin and Sieve to move to Spam / Junk folder

https://superuser.com/questions/1248257/how-to-configure-a-mail-server-using-postfix-dovecot-mysql-and-spamassassin-a/1248470#1248470

This is how is solved it (it took 7 months):

apt install dovecot-sieve dovecot-managesieved
nano /etc/dovecot/conf.d/90-plugin.conf

Add or set in:

protocol lmtp {
        mail_plugins = $mail_plugins sieve
        auth_socket_path = /var/run/dovecot/auth-master
    }  
nano /etc/dovecot/sieve.conf

Add in

require ["fileinto", "mailbox"];
    if header :contains "X-Spam-Flag" "YES" {
        # move mail into Folder Spam, create folder if not exists
        fileinto :create "Spam";
        stop;
    }

Execute

sievec /etc/dovecot/sieve.conf
nano /etc/spamassassin/local.cf

Add in or set it, it's like this ( I think you don't need everythign else):

report_safe             0
required_score          2.0
use_bayes               1
use_bayes_rules         1
bayes_auto_learn        1
skip_rbl_checks         0
use_razor2              1
use_pyzor               0

add_header all Status _YESNO_, score=_SCORE_ required=_REQD_ version=_VERSION_
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status

Edit a new file again

nano /etc/dovecot/conf.d/90-sieve.conf

Set this config, you don't need anything else:

plugin {
    sieve = /etc/dovecot/sieve.conf
}

Edit the mail boxes, so jo have Junk, I think jo just need add or uncomment the Junk setting:

nano /etc/dovecot/conf.d/15-mailboxes.conf 

Add in this config

namespace inbox {
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
}

My user for the e-mail server is vmail, so do like this:

chmod ug+w /etc/dovecot
chmod ug+w /etc/dovecot/sieve.conf.svbin

chown -R vmail:vmail /etc/dovecot

Restart your mail server:

service postfix reload && service spamassassin restart && service dovecot restart

GRUB for another menu once

Make sure /etc/default/grub has this:

GRUB_DEFAULT=saved

You can choose you menu like:

grep -i "menuentry '" /boot/grub/grub.cfg

The boot with your menu:

sudo -i
# my workstation boot from win
grub-reboot 2 
reboot

Git synchronize

git submodule sync

Support Our Open-Source Project ❤️

If you appreciate our work, consider starring this repository or making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you!

Server Availability

Our server may occasionally be down, but please be patient. Typically, it will be back online within 15-30 minutes. We appreciate your understanding.

About My Domains

All my domains, including patrikx3.com and corifeus.com, are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional.

Versioning Policy

Version Structure: We follow a Major.Minor.Patch versioning scheme:

  • Major: Corresponds to the current year.
  • Minor: Set as 4 for releases from January to June, and 10 for July to December.
  • Patch: Incremental, updated with each build.

Important Changes: Any breaking changes are prominently noted in the readme to keep you informed.


P3X-TOOLS Build v2024.10.102

NPM Donate for Corifeus / P3X Contact Corifeus / P3X Like Corifeus @ Facebook