Giter Club home page Giter Club logo

noobs's Introduction

NOOBS - zestaw skryptów dla początkujących

Skrypty przeznaczone są dla uzytkowników usługi MIKR.US, pracujących w systemie Ubuntu 22.04, jednak większosć z nich powinna działać także poza środowiskiem Mikrusa

Instalacja

Skrypty możesz zainstalować na dwa sposoby.

➤ Metoda 'ręczna'

git clone https://github.com/unkn0w/noobs /opt/noobs

➤ Metoda w pełni automatyczna (dla początkujących)

curl -s https://noobs.mikr.us | bash

Jak tego używać?

  1. Wejdź do katalogu /opt/noobs/scripts
  2. Uruchom skrypt odpowiedzialny za postawienie wybranej usługi

Dołącz do projektu

Chcesz dodać swój skrypt do projektu lub poprawić istniejący? Wyślij pull requesta.

Kilka zasad:

  1. Jeśli wrzucasz wiele skryptów jednocześnie, to rozbij je na oddzielne pull requesty
  2. Staraj się, aby Twój skrypt instalował tak mało paczek, jak to tylko możliwe
  3. Skrypt powinien po sobie sprzątać (używasz plików tymczasowych? Usuń je)
  4. Pliki tymczasowe skrypt powinien wrzucać do /tmp/
  5. Podpisz się w komentarzu na początku skryptu, aby każdy wiedział komu ma być wdzięczny :)
  6. Nie zaszywaj w skryptach na stałe nazw maszyn, adresów IP serwera itp.
  7. Pamiętaj, aby dodawany skrypt był wykonywalny (chmod +x)
  8. Stawianie nowych usług wrzucaj do katalogu scripts/, a wykonywanie akcji systemowych do actions/

Licencja

MIT

noobs's People

Contributors

abusuuu avatar archont94 avatar bartlomiejszyszko avatar bgnacinski avatar cloudziu avatar encryptize avatar ferexio avatar janszczyrek avatar kaciorabo avatar kamiljanek avatar koliwbr avatar kuskoman avatar loper avatar maniek205 avatar mariuszdrabik avatar mati75 avatar mikasjp avatar olekczubiak avatar opalinski avatar pawilonek avatar rewida17 avatar rupinski75 avatar sabbath88 avatar seba0855 avatar shirobachi avatar stefopl avatar therealmamuth avatar unkn0w avatar wumekk avatar y0rune avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

noobs's Issues

Uruchamianie skryptów i prośba o sudo

Czy skrypty nie powinny sprawdzać, czy skrypt jest wywoływany z poziomu konta root? Moim zdaniem, z góry wrzucanie np. poleceń apt install bez sudo lub sprawdzania uprawnień może być nieco problematyczne dla nowych użytkowników. Oczywiście z góry zakładam, że korzystają ze zwykłych kont.

[NEW] Dodać instalator Wordpressa

Skrypt powinien najpierw wywołać chce_LAMP.sh, a następnie ściągnąć najnowszą wersję wordpressa (polska wersja jezykowa) ze strony producenta, rozpakować ją i wrzucić do odpowiedniego katalogu.

wez ty człowieku podawaj gdzies jakieś normlane dane kontaktowe?

Blokujesz adresy IP cloudflare z singapury i twoje serwisy sa tam nie dostępne bo cloudlfare nie podaje wszystkich adresów IP do whitelistowania a oni maja to gdzies btw. i pewnie ty że połowę azji blokujesz przez to

co ja mam kombinowac polski numer telefonu by utworzy kontao na wykopie by wysłac tobie jakąs wiadomosc moze morsem

Webmin

Zainstalowałem webmina i on nie instaluje z sobą żadnego servera www i nie ma go na żadnym porcie. Jednosłownie mi nie działa

[NEW] chce_loadbalancer

Balancer obciążenia dla połączeń. Do wyboru: nginx lub haproxy (to częściej stawiam, wydaje mi się lżejsze, łatwiejsze i szybsze). Oczywiście balansowanie TCP, a nie tylko HTTP. Parametrem wywołania powinny być adresy minimum 2 hostów i portów, do których mają być rozsyłane pakiety.
Przyda się to osobom, które mają kilka mikrusów i uczą się HA.

[SUG] Poprawa action - shellchecker

Hej!
Podczas mergowania do main możemy zauważyć, że shellchecker sprawda wszytskie pliki w scripts/*

image

Co sądzicie, żeby dodać do CI aby sprawdzał tylko ten skrypt, który jest modyfikowany oraz także żeby był sprawdzany już na poziomie pull requestu?

Pozdrawiam,
Marcin ;)

[NEW] Dodać instalator Jenkinsa

Usługa powinna stawiać się bezobsługowo, nasłuchiwać na porcie 80 (najlepiej IPv6) i po instalacji wyrzucić hasło dostępowe na ekran.

[NEW] Dodać instalator Webmina

Instalator powinien postawić najnowszą dostępną w repo wersję Webmina, a następnie wystawić ją na porcie 30000 + ID serwera.

[NEW] chce_k3s / k0s

Instalacja małej wersji Kubernetesa (k3s, microk8s lub k0s) - do przetestowania, która zadziała na v2 lub v3.

[NEW][SECURITY] server hardening

Celem jest odpowiednie dokonfigurowanie usług, aby system był mniej podatny na ataki. Propozycja zmian:

  • konfiguracja SSHD (allowed users, permit root login, password auth, itp.)
  • instalacja Lynisa do skanowania i raportowania
  • instalacja logwatch (+ cron i pusher) dla raportu z aktywności na serwerze
  • instalacja narzędzi do sprawdzania bezpieczeństwa zainstalowanych pakietów na Debianie/Ubuntu: ('debsums', 'unattended-upgrades', 'apt-show-versions')

chce_nextcloud.sh + chce_nextcloud2.sh = ujednolicenie

  1. Dlaczego mamy dwa skrypty do nextclouda? Skąd użytkownik ma wiedzieć, którego ma użyć?
  2. Warto te skrypty scalić w jeden porzadny skrypt
  3. Wersja PHP wpisana jest na stałe w skrypt. Powinna być najnowsza dostępna

[NEW] Skrypt do stawiania ProFTPd

Wielu początkujących użytkowników usilnie próbuje postawić serwer FTP na Mikrusie, bo przyzwyczaili się do takiej metody wrzucania plików z hostingów współdzielonych.

Szczerze mówiąc, to wolałbym wymuszać na nich używanie SCP / SFTP, ale jeśli ktoś bardzo-bardzo chce tego FTPa, to może warto zaoferować do tego gotowy skrypt?

[NEW] chce_firewall

Podstawowe zabezpieczenie serwera, zostawienie otwartych tylko portów z panelu, dodanie regułek filtrujących skanowanie i "best practtice". Iptables / ufw

[NEW] chce_backup

Skrypt automatyzujący backupowanie najważniejszych katalogów. Mikrus oferuje 200MB na zabezpieczenie np. konfiguracji - skrypt powinień uwzględniać go jako miejsce na archiwum (np. /etc/). Jeśli ktoś ma wykupiony storage, to backupy najlepiej tam trzymać (np. /storage/backup). Domyślnie ważna jest kopia zapasowa "/etc" oraz "/home".

[NEW] Dodać instalator Nextclouda

Instalator powinien postawić całe środowisko wraz z bazą danych MariaDB (domyślnie jest SQLite).

Ważne: jeśli instalator wykryje obecność katalogu /storage/ to tam domyślnie powinien trzymać pliki użytkownika.

Openvpn

Chcę zainstalować openvpn na mirkus 1.0 i dostępne taki komunikat co zrobić?

Server hostname not known for key x�

chce_2fa_otp.sh - zabezpieczenie skryptu

Do poprawy:

  1. Skrypt prosi o uruchomienie dodatkowej sesji SSH, ale nie czeka na jej uruchomienie. Powinno być jakieś oczekiwanie na ENTER
  2. skrypt uruchamia 'google-authenticator', ale nie sprawdza, czy udało się poprawnie przejść konfiguracje. Od razu zabezpiecza SSH, co może doprowadzić do zablokowania serwera
  3. Skrypt nie sprawdza, czy Authenticator już istnieje w /etc/pam.d/sshd - możliwe jest wielokrotne dodanie tego samego pluginu i zablokowanie serwera

chce_smb.sh

czy smb jest ustawione tak aby po zainstalowaniu od razu współpracowało z openvpn? Jeżeli nie jak to zrobić aby przez openvpn mógł zapiąć po smb do storage

[NEW] instalator PostgreSQL

Instalator powinien postawić bazę i skonfigurować ją tak, aby była dostosowana do ilości dostępnej na serwerze pamięci.

[NEW] chce_sudo

Dodanie użytkownika do grupy "sudoers" lub wpis jak poniżej:

/etc/sudoers.d/marian marian ALL=(ALL) NOPASSWD: ALL

[SUG] Sugestia kolejnych skryptów

  • chce_dockera - instalacja docker.io i docker-composer

  • chce_narzedzia - instalacja przydatnych programów (np. htop, tmux, multitail, silversearcher-ag, unattended-upgrades, localepurge,...)

  • chce_usera - tworzenie nowego użytkownika, z dostępem do sudo i kopią authorized_keys_

  • chce_sudo - dodawanie uprawnień dla użytkownika

chce_postgres_backup.sh - zabezpieczenie skryptu

Skrypt zawsze usuwa stare backupy, nawet jeśli aktualny backup się nie wykonał.
Może to doprowadzić do sytuacji, że stare backupy będą znikać, a nowe się nie pojawiać.
Procedura sprzątania powinna być wywołana jedynie po udanym przygotowaniu backupu.

Ustawiłbym także mniejszy limit archiwum backupów. 180 dni przy dostatecznie dużych bazach na 100% zapcha dysk serwera.

Transient problem: HTTP error przy odpaleniu ./chce_openvpn.sh

Przy odpalaniu skryptu ./chce_openvpn.sh wyskakuje error:

Warning: Transient problem: HTTP error Will retry in 1 seconds. 5 retries
Warning: left.
100  7411    0  7411    0     0   226k      0 --:--:-- --:--:-- --:--:--  226k
Warning: Transient problem: HTTP error Will retry in 2 seconds. 4 retries
Warning: left.
100  7434    0  7434    0     0   250k      0 --:--:-- --:--:-- --:--:--  250k
Warning: Transient problem: HTTP error Will retry in 4 seconds. 3 retries
Warning: left.

który nie pozwala na dalszą instalację skryptu. Skrypt instalacyjny bez problemu zaciąga się ze stronki podanej w chce_openvpn, ale któraś z poniższych flag sprawia problem i openvpn się nie chce zainstalować.

export AUTO_INSTALL=y
export APPROVE_INSTALL=y
export APPROVE_IP=y
export ENDPOINT="$host"
export IPV6_SUPPORT=n
export PORT_CHOICE=2
export PORT=$port
export PROTOCOL_CHOICE=1
export DNS=1
export COMPRESSION_ENABLED=n
export CUSTOMIZE_ENC=n
export PASS=1

[NEW] Dodać wsparcie dla LEMP

Należy stworzyć skrypt instalujący i konfigurujący:

  • nginx
  • mariadb
  • PHP-fpm

Całość ma słuchać na adresacji IPv4 + IPv6.

chce dockera dziwny błąd

Podczas wykonywania skryptu na Mikrus4.0 pojawił się błąd, tak jakby otworzyło nową sesję?
Wykonane polecenia:

# docker

Command 'docker' not found, but can be installed with:

apt install docker.io

# ./noobs/scripts/chce_dockera.sh
Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
Get:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:3 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Fetched 336 kB in 1s (538 kB/s)
Reading package lists... Done
...
Setting up docker-ce (5:20.10.22~3-0~ubuntu-focal) ...
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service -> /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket -> /lib/systemd/system/docker.socket.
Setting up docker-compose (1.25.0-1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for systemd (245.4-4ubuntu3.19) ...
groupadd: group 'docker' already exists
__git_ps1: command not found

tutaj skrypt niby skończył (w rzeczywistości to nie) wykonuję polecenie docker dla sprawdzenia:

# docker

Usage:  docker [OPTIONS] COMMAND
...
Run 'docker COMMAND --help' for more information on a command.

To get more help with docker, check out our guides at https://docs.docker.com/go/guides/
__git_ps1: command not found
#

Nie wiem co się dzieje, chcę wyjść z konsoli:

# exit
exit
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:c77be1d3a47d0caf71a82dd893ee61ce01f32fc758031a6ec4cf1389248bb833
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

i jestem ponownie w oryginalnym Bashu

chce_go.sh nie działa

Skrypt zwraca:

root@e451:~# ./chce_go.sh 
Pobieram go1.21.1
time 2023-08-31T22:36:09Z.linux-amd64.tar.gz do katalogu /tmp/go1.21.1
time 2023-08-31T22:36:09Z.linux-amd64.tar.gz

powodem jest że curl zwraca dwie linie zamiast spodziewanej jednej.

root@e451:~# curl -s "https://go.dev/VERSION?m=text"
go1.21.1
time 2023-08-31T22:36:09Z

prawidłowy link powinine wyglądać:
https://go.dev/dl/goX.XX.X.linux-amd64.tar.gz

[NEW] Dodać instalator OpenVPN

Instalator powinien sam pobierać takie dane jak dostępny numer portu (na podstawie ID maszyny: 20000 + ID), czy publiczny adres serwera, na którym jest uruchamiany.

Cała instalacja powinna być bezobsługowa.

./openvpn.sh

Czy jak zainstaluje openvpn z tego Shell script to czy będę mógł się bawić typu client-to-client?

[NEW] Dodać instalator Ioncube

Skrypt musi sprawdzić:

  1. czy Apache jest dostępny w systemie
  2. czy zainstalowano PHP

Następnie powinien:

  1. ściągnąć wersję Ioncube dostosowaną do wersji PHP
  2. Dopisać odpowiednie zend_extension do php.ini
  3. Zrestartować Apache (jeśli to mod_php) lub PHP (jeśli to FPM)

chce_VSCode - problem z tworzeniem pliku serwisu

Błędny w trakcie wykonywania skryptu.

Uruchomienie:
/opt/noobs/scripts/chce_VSCode.sh [port]

Output:

$ /opt/noobs/scripts/chce_VSCode.sh [port]
[sudo] password for [user]:
[x] sprawdzanie portu [port]
[x] pobieranie instalatora
[x] wygenerowane haslo: [haslo]
[x] dodawanie 'globalipv6' do '/etc/hosts'
[x] ustawianie uzytkownika jako '[user]'
[x] tworzenie pliku konfiguracyjnego '/home/[user]/.config/code-server/config.yaml'
[x] konfigurowanie serwisu '/lib/systemd/system/[email protected]'
sed: can't read /lib/systemd/system/[email protected]: No such file or directory
[x] czyszczenie instalatora
[x] uruchomienie aplikacji
Failed to start code-server@[user].service: Unit code-server@[user].service not found.
[x] sprawdzenie statusu
Unit code-server@[user].service could not be found.


========================================
Gotowe, serwer jest dostepny pod adresem: http://localhost:[port], a haslo to: [pwd]

VNC

Automatyczne instalacja VNC które będzie dziać po port forwarding

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.