p3x-tools
v2024.4.121
Published
💣 Tools
Downloads
35
Readme
💣 Tools v2024.4.121
Bugs are evident™ - MATRIX️
NodeJS LTS is supported
Built on NodeJs version
v22.1.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
Webpack repos
- gitlist
- redis-ui-material
- fortune-cookie
- corifeus-builder-angular
- sygnus ngivr builder webpack
Default excludes from GitHub:
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
https://github.com/verdaccio/verdaccio/issues/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.4.121