aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.bashrc19
-rw-r--r--.mongoshrc.js22
-rw-r--r--.tmux.conf2
-rw-r--r--.vimrc1
-rw-r--r--.zshrc12
-rwxr-xr-xbin/dmenu_launcher2
-rwxr-xr-xbin/schemaspy3
-rwxr-xr-xbin/xman4
-rw-r--r--cv/CV_Abridged.tex7
-rw-r--r--db/mongo/build_db.js32
-rwxr-xr-xipv6/ns_bind.sh52
-rw-r--r--kubernetes/pihole/pi-hole.conf77
-rw-r--r--kubernetes/pihole/resolvconf_resolvers.conf20
-rw-r--r--postit1
14 files changed, 229 insertions, 25 deletions
diff --git a/.bashrc b/.bashrc
index e1ca686..65c69b4 100644
--- a/.bashrc
+++ b/.bashrc
@@ -61,21 +61,22 @@ disk_usage=$(df | grep /dev/sdb3 | awk '{print $5}')
function aa_prompt_defaults() {
local colors=$(tput colors 2>/dev/null || echo -n 1) C=
- if [[ $colors -ge 256 ]]; then
- C="$(tput setaf 33 2>/dev/null)"
- AA_P='mf=x mt=x n=0; while [[ $n < 1 ]];do read a mt a; read a mf a; (( n++ )); done</proc/meminfo; export AA_PP="\033[38;5;2m"$((mf/1024))/"\033[38;5;89m"$((mt/1024))MB--$disk_usage; unset -v mf mt n a'
- else
- C="$(tput setaf 4 2>/dev/null)"
- AA_P='mf=x mt=x n=0; while [[ $n < 1 ]];do read a mt a; read a mf a; (( n++ )); done</proc/meminfo; export AA_PP="\033[92m"$((mf/1024))/"\033[32m"$((mt/1024))MB--$disk_usage; unset -v mf mt n a'
- fi
+ # if [[ $colors -ge 256 ]]; then
+ # C="$(tput setaf 33 2>/dev/null)"
+ # AA_P='mf=x mt=x n=0; while [[ $n < 1 ]];do read a mt a; read a mf a; (( n++ )); done</proc/meminfo; 5;2m";5;89m"; unset -v mf mt n a'
+ # else
+ # C="$(tput setaf 4 2>/dev/null)"
+ # AA_P='mf=x mt=x n=0; while [[ $n < 1 ]];do read a mt a; read a mf a; (( n++ )); done</proc/meminfo; unset -v mf mt n a'
+ # fi
- eval $AA_P
+ # eval $AA_P
PROMPT_COMMAND='stty echo; history -a; echo -en "\e[34h\e[?25h"; (($SECONDS % 2==0 )) && eval $AA_P; echo -en "$AA_PP";'
SSH_TTY=${SSH_TTY:-$(tty 2>/dev/null || readlink /proc/$$/fd/0 2>/dev/null)}
PS1="\[\e[m\n\e[1;38m\][\$\$:\$PPID \j:\!\[\e[1;38m\]]\[\e[0;36m\] \T \d \[\e[1;34m\][${C}\u@\H\[\e[1;34m\]:\[\e[0;37m\]${SSH_TTY/\/dev\//} \[\e[0;37m\]+${SHLVL}\[\e[1;34m\]] \[\e[1;37m\]\w\[\e[0;37m\]\n\\$ "
- export PS1 AA_P PROMPT_COMMAND SSH_TTY
+ # export PS1 AA_P PROMPT_COMMAND SSH_TTY
+ export PS1 PROMPT_COMMAND SSH_TTY
}
aa_prompt_defaults
diff --git a/.mongoshrc.js b/.mongoshrc.js
index 493e925..9533ee8 100644
--- a/.mongoshrc.js
+++ b/.mongoshrc.js
@@ -1,12 +1,26 @@
+"use strict";
+
+config.set("editor", "vim");
+config.set("enableTelemetry", false);
+config.set("inspectDepth", 8);
+config.set("historyLength", 5000);
+
{
const hostnameSymbol = Symbol("hostname");
prompt = () => {
if (!db[hostnameSymbol]) db[hostnameSymbol] = db.serverStatus().host;
- return `\x1b[38;5;22m${db.getName()}\x1b[38;5;24m@${
+ return `\x1b[38;5;63m${ISODate().toLocaleTimeString()} \x1b[38;5;24m${db.getName()}\x1b[38;5;24m@${
db[hostnameSymbol]
- }\x1b[38;5;22m:Uptime:${db.serverStatus().uptime}:Documents:${
+ }\x1b[38;5;22m Uptime:${db.serverStatus().uptime}\x1b[38;5;26m Documents:${
db.stats().objects
- } >>>\x1b[0m`;
- ;
+ }\x1b[38;5;109m V:${db.version()} \n \x1b[38;5;30m>>>\x1b[0m`;
};
}
+
+function get_mangas() {
+ return db.mangas.find();
+}
+
+function get_animes() {
+ return db.animes.find();
+}
diff --git a/.tmux.conf b/.tmux.conf
index e2337f5..43213bf 100644
--- a/.tmux.conf
+++ b/.tmux.conf
@@ -161,6 +161,8 @@ set -g pane-border-format "#{pane_index}:#{pane_current_command}"
set -g message-style bg='#44475a',fg='#8be9fd'
set-option -g status on
+# toggle the display of the statusbar
+bind-key -n S-F6 set-option -g status
set-option -g status-justify "centre"
set-option -g status-left-length 120
set-option -g status-right-length 170
diff --git a/.vimrc b/.vimrc
index bbee88f..a223599 100644
--- a/.vimrc
+++ b/.vimrc
@@ -369,6 +369,7 @@ imap <PageDown> <Nop>
au BufEnter .i3blocks.conf setlocal filetype=i3blocks
au BufEnter *.zsh-theme setlocal filetype=zsh
au BufEnter .muttrc setlocal filetype=neomuttrc
+au BufEnter .psqlrc setlocal filetype=pgsql
au BufEnter *.toml setlocal filetype=toml
au BufEnter *.s setlocal filetype=gas
diff --git a/.zshrc b/.zshrc
index a4e9d39..7d51901 100644
--- a/.zshrc
+++ b/.zshrc
@@ -194,6 +194,7 @@ alias zh_router_root="zssh root@192.168.90.71"
alias zh_router_admin="zssh admin@192.168.90.71"
alias youtube_dl="proxychains4 -f /home/devi/proxies/ca/proxychains.conf youtube-dl"
alias campv="proxychains4 -f /home/devi/proxies/ca/proxychains.conf mpv --no-video"
+alias tormpv="torsocks mpv --no-video"
alias youtube="proxychains4 -f /home/devi/proxies/ca/proxychains.conf mpv --ytdl-format=160+249"
alias tridactylrc="vim ~/scripts/.tridactylrc"
alias fixtridactylrc="cp ~/scripts/.tridactylrc ~/"
@@ -217,7 +218,7 @@ alias vagrant="https_proxy=socks5://[::1]:9993 vagrant --color --timestamp"
alias vm_disposable="cp ~/scripts/vagrant/disposable/Vagrantfile ."
alias vm_disposable_alpine="cp ~/scripts/vagrant/disposable-alpine/Vagrantfile ."
alias checktor="curl --socks5 localhost:9050 --socks5-hostname localhost:9050 -s https://check.torproject.org/api/ip"
-alias ip="ip --color=auto"
+alias ip="grc ip"
alias zathura="tabbed -c -r 2 zathura -e id"
alias ytfzf="proxychains4 -q -f ~/proxies/ice/proxychains.conf ytfzf"
alias newsboat="proxychains4 -q -f ~/proxies/ice/proxychains.conf newsboat"
@@ -245,6 +246,14 @@ alias voiddocs="w3m /usr/share/doc/void/html/index.html"
alias archwiki="python -m http.server --directory /home/devi/chroots/arch/usr/share/doc/arch-wiki/html"
alias bombadillo="bombadillo -t"
alias record_desktop="recordmydesktop --device hw:1,0 --no-wm-check -x 1920 --width 1920 --height 1080 --fps 15"
+alias mongoshrc="vim ~/scripts/.mongoshrc.js"
+alias fixmongoshrc="cp ~/scripts/.mongoshrc.js ~/.mongoshrc.js"
+alias phone_net="sudo ip netns exec phone_ns"
+alias netbsd_bmake="/usr/pkg/bin/bmake"
+
+get_domain_dns_records() {
+ jcurl -X GET -H "Accept: application/json" -H "Authorization: $(cat ~/scripts/arvan-api-key)" "https://napi.arvancloud.com/cdn/4.0/domains/terminaldweller.com/dns-records"
+}
#autosuggest
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#5f5fff,bg=#000000,bold,underline"
@@ -396,7 +405,6 @@ export PATH=$PATH:/home/devi/.fzf/bin
# export PATH=$PATH:/home/devi/.ghcup/bin
export PATH=$PATH:/home/devi/k3s
export PATH=$PATH:/home/devi/kompose
-export PATH=$PATH:/home/devi/mongosh/mongosh-1.1.7-linux-x64/bin
export PATH=$PATH:/home/devi/powershell
export PATH=$PATH:/home/devi/ytfzf.git/rewrite
export PATH=$PATH:/home/devi/gotty
diff --git a/bin/dmenu_launcher b/bin/dmenu_launcher
new file mode 100755
index 0000000..3409348
--- /dev/null
+++ b/bin/dmenu_launcher
@@ -0,0 +1,2 @@
+#!/usr/bin/env zsh
+dmenu_path | dmenu -fn "DejaVuSansMono Nerd Font Mono-11.3;antialias=true;autohint=true" "$@" | ${SHELL:-"/bin/sh"} &
diff --git a/bin/schemaspy b/bin/schemaspy
new file mode 100755
index 0000000..7451993
--- /dev/null
+++ b/bin/schemaspy
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec env java -jar /home/devi/devi/schemaspy/schemaspy-6.1.1-SNAPSHOT.jar "$@"
diff --git a/bin/xman b/bin/xman
index c0de313..a2220ec 100755
--- a/bin/xman
+++ b/bin/xman
@@ -1,7 +1,7 @@
#!/bin/sh
# xmandoc MANPAGE - read manpage of possibly not installed package
-xlocate "man/man..\?/$1\.[0-9]" 2>/dev/null |
+SOCKS_PROXY=socks5://127.0.0.1:9050 xlocate "man/man..\?/$1\.[0-9]" 2>/dev/null |
{ grep . || {
echo "xmandoc: No entry for $1 found." 1>&2
exit 1
@@ -9,7 +9,7 @@ xlocate "man/man..\?/$1\.[0-9]" 2>/dev/null |
while read -r pkg page; do
page=${page#* -> }
# xbps-query --cat=$page ${pkg%-*} | mandoc -O width=205 -a
- xbps-query --cat=$page ${pkg%-*} |
+ SOCKS_PROXY=socks5://127.0.0.1:9050 xbps-query --cat=$page ${pkg%-*} |
mandoc -O width=205 -c | col -b |
vim - -M -R \
-c 'set ft=man nomod nolist' \
diff --git a/cv/CV_Abridged.tex b/cv/CV_Abridged.tex
index 2c2be27..a3f8f54 100644
--- a/cv/CV_Abridged.tex
+++ b/cv/CV_Abridged.tex
@@ -32,6 +32,10 @@
\end{center}
\section*{Professional Experience}
+ \bf Zharfpouyan Tous (Tehran, Iran)\\
+ March 2021 - June 2022\\
+ 14 months\\
+ \normalfont Developing/Maintaining code for unix-like operating systems.\\[5pt]
\bf Erfan Salamat (Tehran, Iran)\\
Nov. 2020--Feb. 2021\\
4 months\\
@@ -120,9 +124,6 @@
{\bf \href{https://github.com/terminaldweller}{Github}} My Github page.\\[5pt]
{\bf \href{https://github.com/terminaldweller/hived}{Hived}} My personal tiny high-performance server written in Go.\\[5pt]
{\bf \href{https://github.com/terminaldweller/cgrep}{Cgrep}} Grep for C-family source files.\\[5pt]
- {\bf \href{https://terminaldweller.github.io/mutator/}{Mutator}} An experimental suite of tools aimed at C-family development written C++,C and Lua.\\[5pt]
- \href{https://github.com/terminaldweller/faultreiber}{Faultreiber} generates a binary file parser in C using an XML description file.\\[5pt]
- \href{https://github.com/terminaldweller/luatablegen}{Luatablegen} generates C code that wraps C structures as Lua tables using an XML description file.\\[5pt]
{\bf \href{https://github.com/terminaldweller/dwasm}{Dwasm}} A WASM dump script written in python.\\[5pt]
{\bf \href{https://github.com/terminaldweller/delf}{Delf}} An ELF dump script in python.\\[5pt]
diff --git a/db/mongo/build_db.js b/db/mongo/build_db.js
index 93884f0..0e3c7f7 100644
--- a/db/mongo/build_db.js
+++ b/db/mongo/build_db.js
@@ -1,5 +1,7 @@
"use strict;";
+disableTelemetry();
+
const animes = {
"vampire cosmonaut":
"https://kissanime.lol/Anime/irina-the-vampire-cosmonaut.wowwo/",
@@ -49,11 +51,33 @@ const mangas = {
db = connect("192.168.1.109:27117/devi");
-const movies = {
+const movies_obj = {
"mad god": "https://www.imdb.com/title/tt15090124/",
};
-db.movies.insertOne(movies);
+const stash_obj = {
+ momo: "https://spankbang.com/73cjr/video/monoka+nishina",
+};
+
+function inser_into_db(mongo_collection, object) {
+ var entries = mongo_collection.find({});
+ Object.keys(entries).forEach((prop) => {
+ console.log(prop);
+ });
+ while (entries.hasNext()) {
+ var entry_id = entries.next()._id;
+ console.log(entry_id);
+ }
+ mongo_collection.updateOne(
+ { _id: entry_id },
+ {
+ $set: object,
+ }
+ );
+}
+
+inser_into_db(db.stash, stash_obj);
+inser_into_db(db.movies, movies_obj);
var mangas_entry = db.mangas.find({});
Object.keys(mangas_entry).forEach((prop) => {
@@ -67,9 +91,7 @@ db.mangas.updateOne(
{ _id: mangas_id },
{
$set: {
- "dungeon sherpa": "https://manganato.com/manga-kt987428",
- gachiakuta: "https://manganato.com/manga-na990935",
- "black lagoon": "https://readmanganato.com/manga-",
+ "hunter x hunter": "https://readmanganato.com/manga-oc955385",
},
}
);
diff --git a/ipv6/ns_bind.sh b/ipv6/ns_bind.sh
new file mode 100755
index 0000000..32b529d
--- /dev/null
+++ b/ipv6/ns_bind.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env sh
+# this pretty much just creates a new network namespace for the interface we get
+# when we enable USB tethering on the phone. This enables us to use the phone interface
+# for certain applications only.
+# reference:
+# - https://unix.stackexchange.com/questions/210982/bind-unix-program-to-specific-network-interface
+# - https://superuser.com/questions/241178/how-to-use-different-network-interfaces-for-different-processes
+# - https://gist.github.com/mtds/4c4925c2aa022130e4b7c538fdd5a89f
+# - https://unix.stackexchange.com/questions/494324/how-to-setup-dns-manually-on-linux
+# example: sudo ip netns exec phone_ns bash
+
+PHONE_NS=phone_ns
+IF=enp0s20f0u3u1u3
+
+sudo ip netns add ${PHONE_NS}
+sudo ip link set ${IF} netns ${PHONE_NS}
+sudo ip netns exec ${PHONE_NS} ip link set ${IF} up
+sudo ip netns exec ${PHONE_NS} ip link set dev lo up
+# will need to install dhclient before runnning this dummy
+# FIXME running dhclient fucks up resolv.conf
+# FIXME right now we have to use sudo
+sudo ip netns exec ${PHONE_NS} dhclient ${IF}
+
+# ip netns add myNamespace
+# ip link set eth0 netns myNamespace
+# ip netns exec myNamespace ifconfig eth0 192.168.0.10/24 up
+# ip netns exec myNamespace ifconfig lo 127.0.0.1/8 up
+# ip netns exec myNamespace route add default gw 192.168.0.1
+# ip netns exec myNamespace firefox
+
+# ip netns add ${PHONE_NS}
+# ip link set ${IF} netns ${PHONE_NS}
+# ip netns exec ${PHONE_NS} ifconfig ${IF} 192.168.0.10/24 up
+# ip netns exec ${PHONE_NS} ifconfig lo 127.0.0.1/8 up
+# ip netns exec ${PHONE_NS} route add default gw 192.168.0.1
+# ip netns exec ${PHONE_NS} dhclient ${IF}
+
+# IF_A=v_eth0a
+# IF_B=v_eth0b
+# ip netns add ${PHONE_NS}
+# ip link add ${IF_A} veth peer name ${IF_B}
+# ip link set ${IF_A} netns ${PHONE_NS}
+# ip netns exec ${PHONE_NS} ifconfig ${IF_A} up {{NAMESPACE_IP}} netmask {{NAMESPACE_NETMASK}}
+# ifconfig ${IF_B} up {{ROOT_NS_IP}} netmask {{ROOT_NS_NETMASK}}
+# ip netns exec ${PHONE_NS} route add default gw {{ROOT_NS_IP}} dev ${IF_A}
+# sysctl net.ipv4.ip_forward=1
+# iptables -t nat -A POSTROUTING -s {{ROUTE_SOURCE}}/24 -o {{NETWORK_INTERFACE}} -j SNAT --to-source {{ROUTE_TARGET}}
+################################################################################
+#test
+ip netns exec ${PHONE_NS} ping -4 9.9.9.9
+ip netns exec ${PHONE_NS} ping -4 google.com
+ip netns exec ${PHONE_NS} curl -4 icanhazip.com
diff --git a/kubernetes/pihole/pi-hole.conf b/kubernetes/pihole/pi-hole.conf
new file mode 100644
index 0000000..35bbf56
--- /dev/null
+++ b/kubernetes/pihole/pi-hole.conf
@@ -0,0 +1,77 @@
+server:
+ # If no logfile is specified, syslog is used
+ logfile: "/var/log/unbound/unbound.log"
+ verbosity: 0
+
+ interface: 127.0.0.1
+ port: 5335
+ do-ip4: yes
+ do-udp: yes
+ do-tcp: yes
+
+ # May be set to yes if you have IPv6 connectivity
+ do-ip6: yes
+
+ # You want to leave this to no unless you have *native* IPv6. With 6to4 and
+ # Terredo tunnels your web browser should favor IPv4 for the same reasons
+ prefer-ip6: no
+
+ # Use this only when you downloaded the list of primary root servers!
+ # If you use the default dns-root-data package, unbound will find it automatically
+ #root-hints: "/var/lib/unbound/root.hints"
+
+ # Trust glue only if it is within the server's authority
+ harden-glue: yes
+
+ # Require DNSSEC data for trust-anchored zones, if such data is absent, the zone becomes BOGUS
+ harden-dnssec-stripped: yes
+
+ # Don't use Capitalization randomization as it known to cause DNSSEC issues sometimes
+ # see https://discourse.pi-hole.net/t/unbound-stubby-or-dnscrypt-proxy/9378 for further details
+ use-caps-for-id: no
+
+ # Reduce EDNS reassembly buffer size.
+ # IP fragmentation is unreliable on the Internet today, and can cause
+ # transmission failures when large DNS messages are sent via UDP. Even
+ # when fragmentation does work, it may not be secure; it is theoretically
+ # possible to spoof parts of a fragmented DNS message, without easy
+ # detection at the receiving end. Recently, there was an excellent study
+ # >>> Defragmenting DNS - Determining the optimal maximum UDP response size for DNS <<<
+ # by Axel Koolhaas, and Tjeerd Slokker (https://indico.dns-oarc.net/event/36/contributions/776/)
+ # in collaboration with NLnet Labs explored DNS using real world data from the
+ # the RIPE Atlas probes and the researchers suggested different values for
+ # IPv4 and IPv6 and in different scenarios. They advise that servers should
+ # be configured to limit DNS messages sent over UDP to a size that will not
+ # trigger fragmentation on typical network links. DNS servers can switch
+ # from UDP to TCP when a DNS response is too big to fit in this limited
+ # buffer size. This value has also been suggested in DNS Flag Day 2020.
+ edns-buffer-size: 1232
+
+ # Perform prefetching of close to expired message cache entries
+ # This only applies to domains that have been frequently queried
+ prefetch: yes
+
+ # One thread should be sufficient, can be increased on beefy machines. In reality for most users running on small networks or on a single machine, it should be unnecessary to seek performance enhancement by increasing num-threads above 1.
+ num-threads: 1
+
+ # Ensure kernel buffer is large enough to not lose messages in traffic spikes
+ so-rcvbuf: 1m
+
+ # Ensure privacy of local IP ranges
+ private-address: 192.168.0.0/16
+ private-address: 169.254.0.0/16
+ private-address: 172.16.0.0/12
+ private-address: 10.0.0.0/8
+ private-address: fd00::/8
+ private-address: fe80::/10
+
+ tls-cert-bundle: "/etc/ssl/certs/ca-certificates.crt"
+ # tls-cert-bundle: /etc/unbound/unbound_server.pem
+ hide-identity: yes
+ hide-version: yes
+ minimal-responses: yes
+ qname-minimisation: no
+ verbosity: 1
+ cache-max-ttl: 14400
+ cache-min-ttl: 1200
+ rrset-roundrobin: no
diff --git a/kubernetes/pihole/resolvconf_resolvers.conf b/kubernetes/pihole/resolvconf_resolvers.conf
new file mode 100644
index 0000000..c8761e6
--- /dev/null
+++ b/kubernetes/pihole/resolvconf_resolvers.conf
@@ -0,0 +1,20 @@
+# Generated by resolvconf
+
+#forward-zone:
+ #name: "."
+ #forward-addr: 2a03:ef40:0:3::4
+ #forward-addr: 2a03:ef40:0:3::5
+forward-zone:
+ name: "."
+ forward-tls-upstream: yes
+ forward-first: no
+ forward-addr: 8.8.8.8@853#dns.google
+ forward-addr: 1.1.1.1@853#one.one.one.one # cloudflare primary
+ forward-addr: 9.9.9.9@853 # quad9.net primary
+ forward-addr: 149.112.112.112@853#dns.quad9.net
+ forward-addr: 1.0.0.1@853#one.one.one.one # cloudflare secondary
+ forward-addr: 8.8.4.4@853#dns.google
+ forward-addr: 2606:4700:4700::1111@853#cloudflare-dns.com
+ forward-addr: 2606:4700:4700::1001@853#cloudflare-dns.com
+ forward-addr: 2a03:ef40:0:3::4
+ forward-addr: 2a03:ef40:0:3::5
diff --git a/postit b/postit
index a657e9e..7588b64 100644
--- a/postit
+++ b/postit
@@ -43,3 +43,4 @@ git reset --hard HEAD~2
tcpdump -ennqti enp0s0f0 \( arp or icmp \)
zssh root@192.168.90.7 'tcpdump -ni enp3s0f0 -U -s0 -w - ' | wireshark -k -i -
echo 1 > /proc/sys/kernel/task_delayacct
+irancell 196242684