развернуть
https://githowto.com/ru
https://git-scm.com/book/ru/v2
http://learngitbranching.js.org/
http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/ru/ch02.html
Справочник предопределенных переменных CI/CD

Ежедневная работа с Git
Работаем с Git: первые шаги в GitHub
Удачная модель ветвления для Git
Эффективное использование Github
Шпаргалка с основными командами для Git
19 советов по повседневной работе с Git
Git Rebase: руководство по использованию
Подробное введение в работу с Git
GIT: Инструкция-шпаргалка для начинающих
Git на сервере - Генерация открытого SSH ключа
https://webhamster.ru/mytetrashare/index/mtb0
Как работать с системой GIT: делимся опытом
Шпаргалка по работе с командами git
Git Rebase: руководство по использованию
Git: Восстановить удаленную (удаленную) ветку
Можно ли восстановить ветку после ее удаления в Git?
Как удалить все удаленные ветки git, которые уже были интегрированы?
Откат ошибочной команды git push --force
Как использовать git с несколькими удалёнными репозиториями
git bisect: путешествие по времени и багам
Git Rebase: руководство по использованию
https://dangitgit.com/ru — некоторые простые рецепты для git

Как выложить свой проект на GitHub.com
Как настроить собственный сервер Git
Как настроить свой сервер Gitlab
Создание сайта на github.io с помощью Landing Pages Framework
Создаем свой персональный сайт на Github

https://docs.gitlab.com/ee/ci/
Введение в GitLab CI
Руководство по CI/CD в GitLab для (почти) абсолютного новичка
Настройка GitLab CI/CD

Devcolibri Базовый курс по Git
https://www.youtube.com/playlist?list=PLIU76b8Cjem5B3sufBJ_KFTpKkMEvaTQR
Dmitry Afanasyev Git. Система контроля версий. Видеокурс
https://www.youtube.com/playlist?list=PLoonZ8wII66iUm84o7nadL-oqINzBLk5g
Илья Кантор JavaScript.ru Git: курс
https://www.youtube.com/playlist?list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb
Илья Кантор JavaScript.ru Git: разное
https://www.youtube.com/playlist?list=PLDyvV36pndZEB7kWWocU4QSn-G78LoaEE

Самоучитель
https://learngitbranching.js.org/?locale=ru_RU
Тренажёр
https://git-school.github.io/visualizing-git/
Git-шпаргалка


частые команды
https://docs.gitlab.com/ee/ssh/
ssh-keygen -t rsa -C "email@example.com"
nano ~/.ssh/config
cat ~/.ssh/id_rsa.pub
ssh -T git@gitlab.com

Git global setup
git config --global user.name "user123"
git config --global user.email "user123@example.com"

git config --list
-------------------------------------------------------------------------------------

Создание локального репозитория
git clone [url, например, https://tau.home.local/user/test_project.git] dir_name — создать локальную копию репозитория в каталоге dir_name.


склонировать ТОЛЬКО конкретную ветку
git clone --branch=branch-name https://github.com/project.git

склонировать репозиторий без многолетней истории его коммитов, тогда нужно использовать параметр --depth=5, где 5 - количество коммитов от последнего:
git clone --depth=1 --branch=branch-name http://whatever.git

склонировать ветку и загрузить субмодули
git clone --branch=bookworm --recurse-submodules https://github.com/sonic-net/sonic-buildimage.git

Работа с удаленным репозиторием
git remote                                    — просмотр списка настроенных удаленных репозиториев.
git remote add [shortname] [url]              — добавить удаленный репозиторий и присвоить ему имя.
git remote rename [shortname] [new_shortname] — изменить короткое имя.
git fetch [shortname]                 — загрузка изменений из удаленного репозитория.
git push [remote-name] [branch-name]  — выгрузка изменений в удаленный репозиторий.
git pull [remote-name] [branch-name]  — загрузка изменений с заданной ветки репозитория.
git fetch --all --prune               — получить список актуальных веток
git remote show [remote-name]         — просмотр состояния удаленного репозитория.
git remote rm [shortname]             — удалить удаленный репозиторий из списка.
git push origin --delete              — удалить ветку удаленного (т.е. не локального) репозитория
git tag --delete имя_тега             — удалить тег 
git push -f ветка                     — принудительное изменение ветки удаленного (т.е. не локального) репозитория

git config --local --get remote.origin.url - получить адрес удалённого репозитория
git fetch --prune origin                   - удалит устаревшие ветки, которые у вас есть локально

Коммиты
Обратите внимание: коммиты делаются в локальную копию репозитория. Указанные команды НЕ загружают изменения на сервер. Для изменения удаленного репозитория используйте git push.
git add список_файлов                     — добавить файлы в индекс ( поставить их под версионный контроль). Обычно делается перед коммитом.
git commit -m «Комментарий к коммиту»     — сделать коммит файлов из индекса.
git commit -a -m «Комментарий к коммиту»  — добавить измененные файлы в индекс и сделать коммит
git commit --amend                        —  исправление последнего сообщения о фиксации
git commit --amend --no-edit              — исправление коммита Применяйте команду лишь для коммитов в локальной ветки

изменение коммитов
не изменяйте ваш последний коммит, если вы уже отправили её в общий репозиторий.
git commit --amend -m "Новое название"    — Изменение названия последнего коммита
git rebase -i r reword                    — переименовать коммит e edit изменить коммит s squash склеить два или больше коммитов
git rebase --continue                     — выполнить после успешного коммита
git ls-remote                             — Полный список удалённых ссылок
git fetch                                 — получает с сервера все изменения, которых у вас ещё нет, но не будет изменять состояние вашей рабочей директории

быстро обновить коммит в удалённом репозитории
git commit --amend
git push --force origin ветка

Отмена коммита или операции
git checkout – имя_файла  — отмена изменений из измененного файла.
git reset имя_файла       — удаление добавленного (но не закоммиченного) файла из индекса.
git commit –amend         — команда для изменения коммита.
git reset --hard HEAD~1
git rebase коммит --onto master           — изменения идут с этого коммита
git revert коммит                         — укажите хэш коммита, который хотите отменить
Git создаст изменения, имеющие прямо противоположный эффект по сравнению с изменениями, содержащимися в этом исходном коммите
git revert коммит --no-commit                    — если необходимо проверить эти изменения и зафиксировать их вручную
git checkout [сохранённый хеш] -- путь/к/файлу   — отменить изменения в файле
git reflog                     — посмотреть где находился указатель HEAD в любой момент времени
git reset --hard HEAD@{index}  — вернуться туда, когда всё работало

Работа в локальном репозитории
git checkout -b новая_ветка origin/ветка_из_репозитория  — создание новой локальной ветки
git branch -a             — посмотреть все ветки
git branch -r             — посмотреть ветки в удалённом репозитории
git branch -d             — удалить ветку
git branch -D             — удалить принудительно ветку
git status                — определение состояния файлов.
git add список_файлов     — добавить файлы в индекс ( поставить их под версионный контроль).
git add .                 — добавить все файлы в индекс
git diff                  — просмотр сделанных изменений.
git diff -staged          — сравнение проиндексированных изменений с последним коммитом.
git rm имя_файла          — удаление физически удаленного файла из индекса.
git rm –cached имя_файла  — удаление файла из индекса ( из версионного контроля ) без физического удаления.
git rebase master server  — Это повторит работу, сделанную в ветке server поверх ветки master
git cherry-pick           — для бекпортирования отдельных изменений в долгоживущие ветки
git diff ветка1 ветка2    — для ревью изменений между версиями ветки
git diff origin/ветка ветка_после_черрипика
git bisect                — для бинарного поиска коммита, вносящего баг 
см https://git-scm.com/book/ru/v2/Инструменты-Git-Обнаружение-ошибок-с-помощью-Git
получить разницу коммитов меж ветками
git log --oneline "origin/ветка1..origin/ветка2"
git log --oneline "origin/ветка2..origin/ветка1"

Просмотр истории
git log                 — выдает список коммитов, сделанных в репозитории.
git log -p              — выдает список коммитов с просмотром изменений, сделанных в каждом коммите.
git log -p filename     — найти в каких фиксациях изменялся файл и что именно было изменено 
git log -stat           — выдает список коммитов с просмотром краткой статистики изменений.
git log -pretty=…       — выдает список коммитов, изменяя формат вывода.
git log -since=…        — выдает список коммитов с ограничением по времени. Например, 2.weeks — коммиты за последние 2 недели.
git log -число          — выдает указанное число коммитов.
git log --oneline -n 3  — вывести три верхних коммита

git log --pretty=format:"%h %s" --graph
git log --graph --left-right --cherry-pick --oneline master

Предосмотр
https://www.amitmerchant.com/git-commands-that-you-can-dry-run-before-actually-running-them/
опция --dry-run покажет, что она будет делать, прежде чем фактически запустить команду
git add . --dry-run           — покажет что будет проиндексировано
git clean -df --dry-run       — покажет что будет удалено
git commit --short --dry-run  — кратко покажет что будет зафиксировано
git commit --long --dry-run   — более подробно покажет что будет зафиксировано
git mv --dry-run              — покажет какие файлы будут перемещены

Откат
git reflog                  — показывает журнал ссылки, предоставленной в командной строке (или HEAD, по умолчанию)
git reset HEAD@{index}      — делаем откат изменений в репозитории до состояния index
git checkout master         — Выбираем нужный бранч(ветку) 
git reset --hard HEAD~2     — делаем откат изменений в репозитории для примера на два коммита назад
git reset --hard HEAD hash  — Можно сделать до какого то определенного коммита по хешу
git reset HEAD myfilename   — Отменяем индексирование файла
git clean -f                — отображает файлы, подлежащие удалению
git clean -n                — Удаляем неотслеживаемый файл
git reset --hard            — сбрасывает индекс и рабочее дерево
git clean -f -d -x          — удаляет все изменеия и все неотслеживаемые файлы, включая продукты сборки
git push -f origin master   — делаем принудительный коммит в основной репо на гитхабе
git revert                  — отменить локально и отправить это изменение в удаленную ветку
rm -rf .git                 — Отменяем git init

восстановление
git fsck --lost-found       — обзор оборванных коммитов
git show коммит             — посмотреть содержание коммита
git rebase коммит           — наложение коммитов поверх другого базового коммита
git reflog                  — журнал ссылки
git cherry-pick коммит      — применить изменение коммита в ветку

git reset
–hard — заставляет весь контент соответствовать коммиту, к которому вы сбрасываете (ресетите)
git reset --hard означает git reset --hard HEAD, то есть, не изменяя ветку, избавиться от всех локальных изменений.
–mixed — это опция по умолчанию, то есть git reset означает git reset --mixed. Эта команда сбрасывает индекс, но не рабочее дерево
для изменений нужно проиндексировать, т.е. git add .
--soft не изменяет индекс или рабочее дерево. Все ваши файлы остаются нетронутыми, как если бы вы использовали --mixed, но все изменения показываются как готовые к коммиту во время выполнения
–merge — эта опция добавлена в git относительно недавно, ее предназначение — прервать неудачное (failed) слияние (merge)
HEAD~ — это сокращенная запись HEAD~1 и означает первого родителя коммита. HEAD~2 означает первого родителя у первого родителя коммита. HEAD~n можно понимать как «n коммитов перед HEAD» или «n-ый предок HEAD».
HEAD^ (или HEAD^1) тоже означает первого родителя коммита. Но вот HEAD^2 означает второго родителя коммита

изменения
git stash          — спрятать изменения
git stash -u       — спрятать неотслеживаемые файлы
git stash -a       — включить изменения в игнорируемые файлы
git stash pop      — вернуть спрятанные изменения
git stash list     — посмотреть весь список stash
git stash show     — команда покажет файлы из последнего stash
git stash show -p  — покажет какие изменения лежат в stash
git stash show -p stash@{5}   — узнать какие изменения в git stash под конкретным номером
git stash apply               — как и 
git stash apply stash@{0}     — применяет последний stash
git stash apply stash@{5}     — внесёт изменения, которые хранятся в стэке под 5-ым номером
git stash clear   — удалит все сохранённые в git stash состояния, безвозвратно
git stash drop    — удалить один последний сохранённый git stash
git stash drop stash@{NUMBER} — очистить определённый stash по его номеру

создаем сабмодуль:
git submodule add     --force gitlab:/репа/пакет.git папка_субмодуля 
git submodule sync
git submodule update  --init --remote
обновить субмодуль адрес и версию 
vim .gitmodules
git config --file=.gitmodules -e
git submodule sync
git submodule update --remote
git submodule update --init --recursive --remote
git submodule update --recursive --remote
если не грузится субмодуль
git submodule init
git submodule update --remote


git reflog show HEAD
git reflog --relative-date
git reflog --no-abbrev
git fsck --full --no-reflogs | grep commit
git reset --hard your_deleted_commit
git fsck --full --no-reflogs --unreachable --lost-found | grep commit | cut -d\  -f3 | xargs -n 1 git log -n 1 --pretty=oneline > .git/lost-found.txt
find . -ctime -12h -type f | sed 's/[./]//g' | git cat-file --batch-check | grep commit
git cat-file -p <your commit>
git log -p <your commit>
git branch commit_rescued <your commit>
git checkout -b <branch> <sha>
git branch -m <restored branch> <final branch>
git stash — положить во временное хранилище все отслеживаемые файлы.
git stash pop — восстановить последние файлы, положенные во временное хранилище.
git stash list — список всех сохраненных изменений во временном хранилище.
git stash drop — удалить последние файлы, положенные во временное хранилище.
git-resurrect <name>
git stash save
git merge origin/master
git stash pop
gitk --reflog
git rebase -i HEAD~n
git reset HEAD^
git reset HEAD~1 --hard 
откат
git reflog - выведет все список всех действий
git reset HEAD@{index}
git checkout master  - Выбираем нужный бранч(ветку) 
git reset --hard HEAD~2  - делаем откат изменений в репозитории для примера на два коммита назад
git reset --hard HEAD hash  - Можно сделать до какого то определенного коммита по хешу
git reset HEAD myfilename - Отменяем индексирование файла
git clean -f - отображает файлы, подлежащие удалению
git clean -n - Удаляем неотслеживаемый файл
git push -f origin master  - делаем принудительный коммит в основной репо на гитхабе
rm -rf .git - Отменяем git init


найти ближайший коммит по дате
git log --oneline --before='2021-01-20' -1

https://overcoder.net/q/13265/как-выборочно-объединить-или-выбрать-изменения-из-другой-ветки-в-git
git diff origin/master origin/master123 files - сравнить файл из разных веток
Если нужно отменить изменения в отдельном файле, то подойдет команда git checkout имя_файла
git checkout 3f25701874aa5a2c16cc6275fa30baa5b6e477a6 имя_файла
git merge --no-ff --no-commit -s ours branchname1
git checkout --patch exp1 file_to_merge
git diff branch_b > my_patch_file.patch
git apply -p1 --include=pattern/matching/the/path/to/file/or/folder my_patch_file.patch
Если вы не хотите объединять file1 и хотите сохранить версию в текущей ветке
git checkout HEAD file1
Если вы не хотите объединять file2 и хотите только версию в branchX
git checkout branchX file2
проверить, как было выполнено слияние, запустив git diff --cached
git diff --cached file1

quit — выходит из интерактивной консоли;
git commit --amend
git rebase --continue
git log --pretty=format:"%h %s" --graph
git log --graph --left-right --cherry-pick --oneline master


git branch -m new-name - переименовать ветку
git branch -m old-name new-name
git push origin :old-name new-name переименовать удалённую ветку
быстрый способ:
git push origin -u new-name
git branch -m old_branch new_branch         # Rename branch locally
git push origin :old_branch                 # Delete the old branch
git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote
изменение коммитов
не изменяйте ваш последний коммит, если вы уже отправили её в общий репозиторий.
git commit --amend -m "Новое название"  - Изменение названия последнего коммита
git rebase -i r reword переименовать коммит e edit изменить коммит s squash склеить два или больше коммитов
git rebase --continue  - выполнить после успешного коммита
git ls-remote  - Полный список удалённых ссылок
git fetch  - получает с сервера все изменения, которых у вас ещё нет, но не будет изменять состояние вашей рабочей директории

git stash для временного сохранения изменений
git rebase -i для причёсывания коммитов во время разработки
git reset во всех своих ипостасях (откат, разбиение коммитов, и т. д.)
git reflog для отката своего репозитория, если случайно ветку
git cherry-pick для бекпортирования отдельных изменений в долгоживущие ветки
git diff origin/ветка ветка_после_черрипика
git range-diff для ревью изменений между версиями ветки
git bisect для поиска коммита, вносящего баг
git revert для отката изменений, вносящих баги
git log -S для поиска коммита по диффу
git rerere для особо долбанутых мерджей с конфликтами

git revert коммит - откатить коммит (коммит обратный этому)

git name-rev --name-only $(git branch | cut -d ' ' -f 5 | tr -d ')') 
git name-rev --name-only $(git branch | cut -d ' ' -f 5 | tr -d ')') |cut -d '/' -f 3 
git describe
git show-branch |cut -d ' ' -f 1 |tr -d '['  |tr -d ']'



-------------------------------------------------------------------------------------
формируем ветку open-source
git checkout master
# COMMIT_SHA - хэш коммита, который соотвествует исходникам наиболее близким к текущей ванильной версии
git checkout COMMIT_SHA
git checkout -b open-source
git push origin open-source

коммитим новую версию
git rm -rf .
cp -rfvP --preserve=all NEW/SRC/PATH/. ./
git add -f .
git commit -m "version NEW_VERSION"
git push origin open-source
создаём тэг ванильных исхоников новой версии
git tag -a -m "vanilla version NEW_VERSION" vNEW_VERSION-vanilla
git push origin vNEW_VERSION-vanilla

создаём ветку для обновления master
git checkout master
git checkout -b upgrade-NEW_VERSION
git merge vNEW_VERSION-vanilla

git commit -m "update with version NEW_VERSION"
git push origin upgrade-NEW_VERSION

фиксим
git checkout master -- *
git checkout master -- *.py



клонировать проекты группы в GitLab
GitLab: склонировать список репозиториев
Список репозиториев: https://your-gitlab-host/api/v4/projects?per_page=1000
список для группы проектов: https://your-gitlab-host/api/v4/groups/{group-id}/projects?per_page=1000
https://your-gitlab-host/api/v4/groups/{group-id}/projects?per_page=9999&page=1&include_subgroups=true

Выкачать (в текущий каталог) репозитории по списку из файла:




Как клонировать сразу все проекты группы в GitLab?








Чтобы включить подгруппы, добавьте include_subgroups=trueпараметр запроса, например
https://<your-host>/api/v4/groups/<group_id>?include_subgroups=true



Обновление списка репозиториев




скрипты на питоне








скрипт на баше, выкачивает с вложенными подгруппами




https://github.com/adroste/gitlab-clone-group
python3 gitlab-clone-group.py --token 'токен' --gitlab-domain gitlab.домен группа_которую_склонировать /путь/каталог_куда_клонировать

https://github.com/gabrie30/ghorg
ghorg clone group3 --base-url=https://<your.instance.gitlab.com> --scm=gitlab --token=XXXXXX --preserve-dir

https://github.com/ezbz/gitlabber
gitlabber -t <personal access token> -u <gitlab url> -i '/MyGroup**' ~/GitlabRoot


ошибки
из за
https://github.com/vitejs/vite/blob/main/.gitattributes
* text=auto eol=lf
сыпятся ошибки при создании веток, git config --global core.autocrlf false не помогает, нужно оставить только
* text=auto



Как сделать простой веб-сайт за один час, часть 1

заглянуть
конфигурации сервера
Ставим LEMP
https://www.hostinger.com/tutorials/how-to-install-lemp-centos7
https://www.cloudjojo.com/how-to-install-nginx-mariadb-php-lemp-on-centos-7/
https://serveradmin.ru/ustanovka-i-nastroyka-nginx-php-fpm-php7-1-na-centos-7/

1) установка nginx
yum install epel-release -y
yum install nginx -y
systemctl start nginx
systemctl enable nginx

2) установка MySQL (MariaDB)
yum install mariadb-server mariadb -y
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation
MariaDB запросит пароль root, так как это первоначальная установка, и у вас его нет, поэтому просто нажмите enter. Следующее приглашение спросит, хотите ли вы установить пароль root, введите Y и следуйте инструкциям

3) установка PHP v7.3
yum repolist
yum install yum-utils
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
curl -O http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
yum --enablerepo=remi,remi-php73 install php-fpm php-common



обновить php
yum-config-manager --disable remi-php73
yum-config-manager --enable remi-php74
yum update -y

4) настройка связки nginx + php
/etc/nginx/conf.d - каталог для запуска конфигураций, сюда добавляем символические ссылки
например: ln -s /etc/nginx/virt_host/default_php.conf /etc/nginx/conf.d/
/etc/nginx/virt_host - папка для хранения файлов конфигураций хостов (можно обозвать по другому)

в дебиановых
sites-available
каталог для хранения файлов хостов
sites-enabled
каталог, предоставляющий Nginx список хостов, которые нужно обслуживать

Добавление виртуальных хостов на nginx (очень доступно)
https://shneider-host.ru/blog/dobavlenie-virtualnyh-hostov-na-nginx.html
https://www.8host.com/blog/nastrojka-virtualnyx-xostov-nginx-v-centos-7/
https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-on-centos-7
NGINX - создание виртуальных хостов
Один конфиг Nginx для работы с кучей разных сайтов
Настройка NGINX для поддержки одного и нескольких сайтов WordPress
Несколько сайтов на nginx, один IP-адрес


mkdir /etc/nginx/virt_host
nano /etc/nginx/virt_host/default_php.conf



netstat -tulpn | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 9084/php-fpm: maste

nano /etc/php-fpm.d/www.conf
Найдите и измените эти строки:

user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

5) проверяем
ln -s /etc/nginx/virt_host/default_php.conf /etc/nginx/conf.d/
nginx -t
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl restart php-fpm nginx

https://nginxconfig.io/
https://www.nginx.com/resources/wiki/start/
https://docs.joomla.org/Nginx
https://www.nginx.com/resources/wiki/start/topics/recipes/yii/
https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/
https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/
https://wordpress.org/support/article/create-a-network/
Как создать самоподписанный сертификат SSL для Nginx на CentOS 7
Настройка nginx для работы с сертификатами ГОСТ 2012 года
Как добавить модуль gzip в Nginx на CentOS 7
-----------------------------------------------------------------------------------
Документация Основы Веб-программирования WSGI (pep-333)
Развертывание приложения Python WSGI с помощью uWSGI+NGINX
Настройка uWSGI и NGINX для обслуживания приложений Python в Ubuntu 14.04
веб-интерфейс для python в ubuntu используя nginx и uwsgi
Как избежать 10 частых ошибок в настройке NGINX

Как завершить TLS-соединение в Nginx
Настройка LEMP-сервера с помощью Ansible для простых проектов. Часть первая: знакомство с Ansible
Настройка LEMP-сервера с помощью Ansible для простых проектов: практический курс. Часть первая
-----------------------------------------------------------------------------------
Динамические виртуальные хосты (dynamic vhost) в nginx
нужно для того, чтобы каждый раз при добавлении домена, не было нужды редактировать файл конфигурации. Достаточно один раз настроить, добавить\обновить DNS запись и добавить директорию на сервер.



проверять наличие директории, и если такой нет - показывать 404 ошибку:



Если необходимо только для поддоменов то:



вместо 404 ошибки можно сделать перенаправление (редирект, если будет угодно) на основной:



универсальный вариант для доменов и поддоменов:



Редирект с www на без www Nginx
Редирект с http на https Nginx


обратный прокси (доступ к ресурсу за nat)
nginx настраивается как тут добавляется файл server233_reverse.conf в /etc/nginx/virt_host, а символическая ссылка с него - в /etc/nginx/conf.d/




sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
sudo firewall-cmd --zone=external --add-port=28080/tcp --permanent
sudo firewall-cmd --zone=external --add-port=28888/tcp --permanent
sudo firewall-cmd --reload


появится доступ из внутренней сети по порту 8080, из наружной по порту 28080, к сайту на сервере 233, находящемся на порту 8080, с 8888 портом, на котором висит другой сайт - аналогично

Решение с помощью firewall-cmd
https://www.dmosk.ru/miniinstruktions.php?mini=router-centos
перенаправление сетевых запросов на сервер, стоящий за NAT и не имеющий прямого выхода во внешнюю сеть.

firewall-cmd --zone=external --permanent --add-forward-port=port=25:proto=tcp:toport=8025:toaddr=192.168.0.15

* где 25 — прослушиваемый внешний порт, для которого сработает перенаправление; tcp — используемый транспортный протокол; 8025 — на какой порт перенаправить запрос; 192.168.0.15 — IP-адрес сервера, на который отправляем запросы.

Разрешаем сам порт:
firewall-cmd --permanent --zone=external --add-port=25/tcp

Чтобы правило вступило в силу:
firewall-cmd --reload

установка squid с доступом по группам в AD, squidGuard, lighttpd+lightsquid, sams2 в centos часть 1
установка squid с доступом по группам в AD, squidGuard, lighttpd+lightsquid, sams2 в centos часть 2

https://nginx.org/ru/docs/http/ngx_http_proxy_module.html
https://www.scaleway.com/en/docs/how-to-configure-nginx-reverse-proxy/
https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
https://nginx.org/ru/docs/http/ngx_http_proxy_module.html
Настройка обратного прокси Nginx на Linux
Проксирование запросов в nginx с помощью proxy_pass
Nginx как обратный прокси на Docker
Проксирование запросов в nginx с помощью proxy_pass
Разбираемся в HTTP прокси NGINX, балансировке нагрузки, буферизации и кешировании
Виртуальные хосты на nginx (CSC309)

Примеры редиректов в NGINX

Настройка Nginx для использования в качестве веб-сервера и обратного прокси-сервера для Apache в One Ubuntu 18.04 Server

https://docs.nginx.com/nginx/deployment-guides/load-balance-third-party/microsoft-exchange/
Настройка NGINX для проксирования почты
СКРЫВАЕМ ЧАСТЬ РЕСУРСОВ IIS СРЕДСТВАМИ NGINX AS REVERSE PROXY (CENTOS 7)
Обратный прокси на Nginx

http://nginx.org/en/docs/http/load_balancing.html

https://wiki.squid-cache.org/SquidFaq/ReverseProxy
Reverse proxy from nginx to squid?
Требуется связка: client <-> nginx <-> squid <-> site.
Обратный прокси от nginx до squid

взаимодействие с CGI
Configure Perl-FastCGI on CentOS 7 Nginx Server
https://www.nginx.com/resources/wiki/start/topics/examples/fcgiwrap/
http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html
настройка nginx+perl
https://www.linode.com/docs/web-servers/nginx/nginx-and-perlfastcgi-on-centos-5/

sudo yum install spawn-fcgi fcgiwrap

nano /etc/nginx/virt_host/default_perl.conf



ln -s /etc/nginx/virt_host/default_perl.conf /etc/nginx/conf.d/

nano /etc/sysconfig/spawn-fcgi




nano /var/www/default_perl/index.pl




systemctl enable --now spawn-fcgi


NGINX Unit
http://unit.nginx.org/
https://github.com/nginx/unit
http://hg.nginx.org/unit
https://hub.docker.com/r/nginx/unit/
https://github.com/miholeus/nginx-unit-python

Remi's RPM repository PHP with the NGINX unit application server

1. Official repository installation


2. Remi repository installation


3. Server and modules installation


4. Test configuration
4.1 Preparation
curl -O https://blog.remirepo.net/public/unit.config


4.2 Run the service:
# systemctl start unit

4.3 Configuration
Configuration is managed through a REST API:

# curl -X PUT --data-binary @unit.config --unix-socket /var/run/unit/control.sock http://localhost/config

And to check running configuration:
# curl --unix-socket /var/run/unit/control.sock http://localhost/config

5 Usage
You can access the application on each new port:

http://localhost:8300/ for default PHP
http://localhost:8356/ for PHP version 5.6
http://localhost:8372/ for PHP version 7.2
etc


https://unit.nginx.org/configuration/
Nginx Unit Веб. Мысли вслух
Установка NGINX + PHP7 последних версий
Nginx Unit + Django + Virtualenv - Конфигурация
Установка WordPress с модулем NGINX
Installing WordPress with NGINX Unit - NGINX
HOW TO INSTALL NGINX UNIT ON LINUX
NGINX Unit – Application Server from Nginx
Nginx Unit + Bitrix настройка
Настройка NGINX Unit под PHP


phpmyadmin
https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-20-04-ru
https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-with-nginx-on-an-ubuntu-18-04-server
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04-ru
https://howitmake.ru/blog/ubuntu/93.html

apt install nginx mysql-server
apt install php-fpm php-mysql
mysql_secure_installation
apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

vim /etc/php/7.4/fpm/php.ini


ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

/etc/nginx/sites-available/phpmyadmin


vim /var/www/html/info.php
<?php phpinfo() ?>

/etc/nginx/sites-available/default_php


cd /etc/nginx/sites-available/
ln -s ../sites-available/phpmyadmin
ln -s ../sites-available/default_php

nginx -t
systemctl reload nginx
service nginx restart

если
1044 - Для пользователя 'phpmyadmin'@'localhost' доступ к базе данных 'baza' закрыт

https://losst.ru/ustanovka-phpmyadmin-s-nginx-v-ubuntu-20-04
sudo mysql -u root -p
После ввода пароля root пользователя MySQL, введите следующие команды:
CREATE USER 'test'@'localhost' IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';
FLUSH PRIVILEGES;


lighttpd
https://wiki.archlinux.org/index.php/Lighttpd_(Русский)#Виртуальные_хосты
https://lorwiki.org.ru/wiki/Lighttpd
Веб-сервер Lighttpd - настраиваем виртуальные хосты.
Веб-сервер Lighttpd - включаем поддержку SSL.
Создание виртуальных хостов с mod_mysql vhost в Lighttpd на Ubuntu
lighttpd в качестве обратного прокси
https://wiki.archlinux.org/index.php/Lighttpd_(Русский)#Lighttpd_как_reverse_proxy_для_отдачи_статики
https://stackoverflow.com/questions/4859956/lighttpd-as-reverse-proxy
Обязательный пакет

server.modules = (
...
"mod_proxy",
...
)
Настройка вашего внешнего прокси: для lighttpd.conf @ 192.168.1.10

$HTTP["url"] =~ "^.*DeviceB" {
proxy.server = ( "" =>
(( "host" => "192.168.1.20", "port" => 80 ))
)
}

$HTTP["url"] =~ "^.*DeviceC" {
proxy.server = ( "" =>
(( "host" => "192.168.1.30", "port" => 80 ))
)
}
Для полной документации по lighttpd mod_proxy, вы можете обратиться к http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModProxy

LAMP
http://www.apache.org/
https://downloads.apache.org/
https://projects.apache.org/releases.html
https://www.apachelounge.com/download/
https://help.ubuntu.ru/wiki/apache2
Большой Мануал по настройке lamp-сервера на Debian: Часть 0.
Установка и настройка сервера Apache на ubuntu
Установка веб-сервера Apache в CentOS 7
Настройка web сервера в CentOS 7
Веб-сервер Apache: установка, настройка и способы защиты от атак
Разработка сайтов на домашней машине с Fedora
Установка phpmyadmin на CentOS 7
Настройка Apache + SSL для работы сайта по HTTPS
Установка Apache HTTP Server 2.2.22 на Windows
Установка Apache и PHP на Windows

https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html
How to Configure Apache HTTPS Reverse Proxy on CentOS Linux
Настройка mod_proxy в Apache
How To Use Apache HTTP Server As Reverse-Proxy Using mod_proxy Extension
How To Use Apache as a Reverse Proxy with mod_proxy on CentOS 7
Как использовать Apache в качестве обратного прокси с mod_proxy на CentOS 7
Как использовать Apache в качестве обратного прокси при помощи mod_proxy на Ubuntu 16.04
Настройка Reverse Proxy Apache (Debian 8) с автоматической выдачей Let's Encrypt
Using Let's Encrypt and Docker for Automatic SSL
Apache2 als Reverse Proxy für Exchange 2010 2013 2016 2019 inklusive Outlook Anywhere RPC over http
Настройка Apache Reverse Proxy для MS Exchange 2010, 2013, 2016 (Debian 8 Jessie/Ubuntu 14.04 Trusty Tahr)

HAProxy
Разбираем методы проксирования на основе HAProxy
Как установить и настроить HAproxy в Ubuntu 20.04 LTS

Самостоятельная настройка VDS / VPS

https://2ton.com.au/standalone_binaries/rwasa
https://github.com/caddyserver/caddy

https://letsencrypt.org/
https://whatsmychaincert.com/
Настройка HTTPS с сертификатами Let’s Encrypt

https://www.acme.com/software/thttpd/
thttpd -D -h 0.0.0.0 -p 3000 -d /static-website -u static-user -l - -M 60
https://redbean.dev/

Настройка Linux для высоконагруженных проектов и защиты от DDoS

5 способов создать мгновенный легкий веб-сервер с помощью командной строки Linux

использование docker
docker команды
centos docker yii
подборка по виртуализации и облакам
Опыт разработки высоконагруженной системы в рамках HighLoad Cup
Разработка под Docker. Локальное окружение. Часть 1
Разработка под Docker. Локальное окружение. Часть 2 — Nginx+PHP+MySql+phpMyAdmin
Готовим локальную среду Docker для разработки на PHP
https://github.com/PHPtoday-ru/docker-local-conf
https://hub.docker.com/_/scratch
Как поднять сайт в Docker
Настройка веб-сервера в Docker (NGINX + PHP + MariaDB)
Используем Docker для развертывания web-приложения bitrix
Настройка LEMP сервера с помощью docker для простых проектов. Часть первая: База
https://github.com/lipanski/docker-static-website
60+ Best Docker Containers for Home Server Beginners 2023
Docker Media Server Ubuntu 22.04 with 23 Awesome Apps
https://github.com/htpcBeginner/docker-traefik

управлялки
https://www.webmin.com/
https://cockpit-project.org/
http://vestacp.com/
https://ajenti.org/
https://www.rundeck.com/open-source

контент
RSS
https://freshrss.org/
https://tt-rss.org/
https://github.com/fossar/selfoss
https://github.com/samuelclay/NewsBlur
https://github.com/feedhq/feedhq
https://miniflux.app/

https://github.com/DIYgod/RSSHub
https://github.com/RSS-Bridge/rss-bridge
https://github.com/suin/php-rss-writer/
https://bitbucket.org/fivefilters/full-text-rss/src/master/
https://github.com/Kombustor/rss-fulltext-proxy
https://github.com/goutsune/unko
https://rssbox.herokuapp.com/

Обзор RSS-ридеров — self-hosted альтернативы Google Reader
Почему я по-прежнему пользуюсь RSS
Что такое RSS-лента и как ее создать

Трансляция потока с веб-камеры с помощью ffserver
Потоковое видео средствами ffserver & ffmpeg
Запускаем DOS игру в браузере
https://dos.zone/studio/
Пишем онлайн-тренажёр для Python, C++ и Go: опыт Практикума
Установка GitLab совместно с уже работающим Nginx
Рабочий стол Linux в браузере
https://github.com/navidrome/navidrome
https://www.navidrome.org/docs/installation/linux/
https://browsix.org/
https://github.com/plasma-umass/browsix
https://github.com/yudai/gotty
https://github.com/os-js/OS.js
https://github.com/os-js/osjs-server
https://xtermjs.org/
https://github.com/butlerx/wetty
https://chromium.googlesource.com/apps/libapps/+/master/hterm/
https://chromium.googlesource.com/apps/libapps/+/master/nassh/
https://github.com/DustinBrett/daedalOS

https://github.com/paradoxxxzero/butterfly
https://github.com/BlackArch/webshells
https://github.com/epinna/weevely3


Безопасный HTTPS-прокси менее чем за 10 минут
https://freemyip.com/
https://github.com/SenseUnit/dumbproxy

Cloud Commander – веб файловый менеджер для управления файлами и программами Linux через браузер

HTML код для получения видео с камеры, сохранить этот код в файл с расширением .htm и открыть веб-браузером.




Решение проблем неправильной кодировкой веб-страницы
Защита контента веб-сайта
Сетевой pivoting: понятие, примеры, техники, инструменты
75 фактов, которые полезно знать перед тем, как выложить сайт

https://doka.guide/


публикация
https://localtunnel.github.io/www/
https://ngrok.com/
Как без белого IP локальный веб-сервер сделать доступным из Интернета
https://github.com/samyk/pwnat

домен DNS DDNS
домен
https://www.freenom.com/
https://gen.xyz/
https://ru.hostings.info/domen-xyz
https://ru.tld-list.com/tld/xyz
https://codd-wd.ru/fwd/domains/
https://atex.ru/
https://sweb.ru/
https://freedns.afraid.org/

Свои DDNS (Dynamic DNS) сервер и клиент на базе Debian
Настройка DynDNS на Debian


SSL
https://zerossl.com/
https://letsencrypt.org/
сертификат
cert.мой_сайт.xyz
https://github.com/acmesh-official/acme.sh
Acme.sh + Ansible + Alias mode: Автоматизируем получение и распространение TLS сертификатов
Начало работы с acme.sh и клиентом Let’s Encrypt SSL
Сертификаты Let's Encrypt Установка и автоматизация с помощью acme-tiny
Как установить бесплатный сертификат Let’s Encrypt и настроить автоматический перевыпуск
Получение бесплатного SSL сертификата Let's Encrypt
Получаем сертификаты Let's Encrypt при помощи Certbot
Let's Encrypt: получение сертификата по шагам
Создание самоподписанного SSL-сертификата для Apache в Debian 10
Настройка Apache + SSL для работы сайта по HTTPS
Создание самоподписанного SSL-сертификата
Создание самоподписанного SSL-сертификата
https://www.altlinux.org/Создание_самоподписанных_сертификатов
OpenSSL: принципы работы, создание сертификатов, аудит
быстро выпустить свой сертификат через свой CA, добавив его к себе в доверенные
центр сертификации от компании SmallStep
https://github.com/smallstep/certificates

примеры создания самоподписанного серификата



certificate.crt — сам сертификат;
privateKey.key — файл ключа.

Файлы ключа и сертификата будут размещены в каталоге, указанном при вызове команды openssl в параметрах keyout и out.
При использовании OpenSSL необходимо также создать ключи Диффи-Хеллмана, чтобы
сгенерировать ключи Диффи-Хеллмана длиной 4096 бит и сохранить их в файл /etc/nginx/dhparam.pem:
нужно вбить команду




Преобразуйте файл сертификата в доверенный сертификат формата DER для импорта в браузер. Для этого выполните команду:



Импортируйте файл bump.der в список доверенных корневых центров сертификации на компьютерах пользователей.
При использовании некоторых браузеров (например, Mozilla Firefox) требуется также добавить сертификат в хранилище браузера.

создание самоподписанного сертификата на примере настойки openvpn
Как сделать и настроить собственный VPN




vps
Список сетей VPS/выделенных серверов, подвергающихся цензуре в России
https://poiskvps.ru/
https://vds.menu/
https://vps.today/

https://github.com/lesichkovm/awesome-vps-price-breakdown
https://www.oracle.com/cloud/free/
?
https://cybernews.com/best-web-hosting/free-vps-hosting/
https://www.ionos.com/servers/vps
https://www.digitalocean.com/
https://www.vultr.com/products/cloud-compute/
http://lowendstock.com/deals/
https://haphost.com/vps-hosting/
https://www.cloudatcost.com/

?
https://justhost.asia/
https://justhost.ru/
https://hshp.host/
https://ztv.su/
https://eurobyte.ru/
https://beget.com/
https://ihor.online/
https://62yun.ru/
https://ruweb.net/
https://weasel.cloud/
https://nuxt.cloud/
https://hip.hosting/
https://pq.hosting/
https://mchost.ru/
https://hostkey.ru/vps/
https://cp.inferno.name/
https://fornex.com/
https://firstbyte.ru/
https://aeza.net/ru
https://ishosting.com/
https://timeweb.cloud/
https://serverspace.ru/
https://www.ihc.ru/
https://firstvds.ru/
https://handyhost.ru/
https://www.majordomo.ru/
https://www.ipserver.su/
https://vds.sh/
https://4vps.su/

?
https://bitlaunch.io/

https://vpswala.org/cart/index.php?rp=/store/web-hosting
https://www.gigarocket.net/free-vps.php

Oracle раздает бесплатные VPS навсегда
Бесплатный VPS от Google навсегда
Регистрируем бесплатный (Always Free) VPS - сервер от Oracle навсегда, для сервисов Умного дома или чего-то другого.
Как получить бесплатный VPS (VDS) сервер навсегда

VPN на своём сервере с IP адресом из США за 1$ в месяц⁠⁠

проверить месторасположение vps
https://www.myip.com/
https://whatismycountry.com/



Как сделать простой веб-сайт за один час, часть 2

заглянуть
Как сделать простой веб-сайт за один час с помощью Github
От переводчика: инструкция максимально простая, зато на неё можно ссылаться, если новички задают вопрос, как запустить свой сайт в интернете.


Один из моих друзей пару месяцев твердил, что сделает сайт на весенних каникулах. Сейчас каникулы заканчиваются, а он так и не начал. Завтра его день рождения, и я решил как мудак хороший друг сделать ему подарок: написать пошаговую и максимально простую инструкцию.



В реальности, достаточно всего одного часа, чтобы сделать веб-сайт. Я это знаю, потому что засёк время, когда сам выполнял нижеследующие действия, и весь процесс занял чуть меньше часа (я даже зарегистрировал новый домен и создал новый аккаунт на Github для чистоты эксперимента). Код этого сайта тоже можно посмотреть на Github.



1. Идёте на namecheap.com и регистрируете домен. Этот шаг только в том случае, если нужно собственное доменное имя.



2. Создаёте аккаунт Github и скачиваете Git, если это ещё не сделано.



3. Создаёте директорию для размещения веб-сайта и перемещатесь туда командой cd: это команды mkdir my-site && cd my-site. Все будущие команды предполагают, что вы внутри рабочей директории.



4. Делаем новый репозиторий Github для сайта под названием yourusername.github.io. Например, я зарегистрирован под именем smilli, так что мой репозиторий называется smilli.github.io.



5. В рабочей директории запускаем git init и git remote add origin github.com/username/username.github.io.git, где вместо ‘username’ указываем свой имя пользователя.



6. Создаём файл ‘index.html’ в папке с сайтом с HTML-кодом главной страницы. Здесь необязательно тратить много времени, он может быть весьма лаконичным.



<html>
<head>
  <title>YOUR SITE TITLE</title>
  <-- Add some style to your site, see http://getbootstrap.com for details -->
  <link rel="stylesheet"
  href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
</head>
<body>
  <h1>YOUR SITE TITLE</h1>
  <p>Your text blahblahbhalbha</p>
  <p>Another paragraph!  Maybe more text!</p>
</body>
</html>


7. Пишем в коде главной страницы любой текст. Изменения отображаются локально командой python -m SimpleHTTPServer 8000 и набором адреса localhost:8000 в браузере.



8. Теперь запускаем следующие команды:

git add .
git commit -m "Initial commit"
git push -u origin master


9. Идём на yourusername.github.io. Здесь вы должны увидеть свой сайт! Поздравляю, вы что-то опубликовали в онлайне.



10. Если хотите собственное доменное имя, создаёте файл ‘CNAME’ (всё прописными буквами). Туда добавляете одну строчку ‘'yourdomainname.com' (без http или www). См. подробности конфигурации CNAME здесь.



11. Как и раньше, отправляем все изменения на Github.



git add .
git commit -m "Add CNAME"
git push


12. Теперь авторизуетесь на namecheap.com и щёлкаете по доменному имени, которое нужно, в списке своих доменов. Список будет примерно таким:







После выбора домена, появится ссылка «All Host Records» в левой панели во вкладке «Host Management». Нажмите на неё. Теперь вы увидите настройки по умолчанию, которые Namecheap указал для вашего сайта.







Измените настройки следующим образом (заменив ‘username’ на своё имя пользователя, конечно).







13. После вступления в действие изменений в DNS вы сможете увидеть свой сайт на своём домене! Поздравляю. :)

кратко сайт на Github
https://help.github.com/en/articles/about-supported-custom-domains
https://htmlacademy.ru/blog/99-github-as-hosting
https://ru.hexlet.io/courses/html/lessons/github/theory_unit


  1. Зарегистрируйтесь на https://github.com/, если еще не сделали этого.

  2. Создайте новый репозиторий с именем username.github.io, где username — ваш ник на Github.

  3. Создайте новый файл. Когда репозиторий не пуст, то в верхнем правом углу есть кнопка Create New File, но сейчас, когда еще нет ни одного файла, создать первый можно по прямой ссылке https://github.com/username/username.github.io/new/master, где username — ваш ник.

  4. Введите имя index.html и скопируйте туда содержание файла index.html, который у вас получился в предыдущем уроке.

  5. Нажмите кнопку "Commit new file".

  6. Повторите то же самое для файла style.css.

  7. Через несколько мгновений страница станет доступна по вашему адресу https://username.github.io

сайт на Node.js
Как запустить простой статический сайт за пять ≈пятиминутных шагов при помощи Node.js и Express

Шаг 1. Установить движок Node.js в соответствии с инструкциями, имеющимися в вики для каждой из поддерживаемых операционных систем. (Для Windows достаточно скачать и запустить MSI-файл, для CentOS — воспользоваться системным менеджером пакетов, и так далее.)

Шаг 2. Создать пустой каталог и поместить в нём файл «site.js» следующего содержания:



Настройки staticSiteOptions можно переменить по собственному вкусу.

Шаг 3. В том же каталоге подать команду «npm install express», которая автоматически создаст подкаталог «node_modules» и установит туда Express, скачав из Интернета.

Шаг 4. В том же каталоге создать подкаталог «static» и поместить в нём файлы статического сайта. Этот подкаталог станет корнем сайта. Файлы с именами «index.html» будут использоваться как файлы-индексы. Иными словами, при ответе сервера на запрос с адресом, содержащим только имя некоторого каталога (будь то корень сайта или один из его подкаталогов), будет показан файл с именем «index.html» из указанного каталога (если есть).

Шаг 5. В том же каталоге подать команду «node site», которая запустит сервер. Убедившись в её работоспособности, обеспечить автозапуск этой команды в этом каталоге после каждой перезагрузки операционной системы. (Например, на CentOS 6.2 можно использовать upstart для этой цели.)

https://github.com/vercel/next.js
https://github.com/visnup/npm-www
https://github.com/ceejbot/npm-www
https://github.com/ErikHumphrey/Next


работа с nodejs
Установка Node.js с помощью NVM
Шпаргалка по пакетному менеджеру NPM
Автозапуск приложения Node.js на CentOS 6.2

конструкторы статических сайтов
https://gohugo.io/
https://github.com/gohugoio/hugo
https://jekyllrb.com/
https://github.com/jekyll/jekyll
https://github.com/jekyll/jekyll-sitemap
https://github.com/planetjekyll/awesome-jekyll-plugins
https://guides.hexlet.io/jekyll/
Создаем блог используя Jekyll и GitHub Pages

https://glitch.com/
https://neocities.org/ (замена narod.ru)
https://github.com/neocities
https://app.netlify.com/drop
https://pages.github.com/

https://john-doe.neocities.org/ (веб-сайт представляет собой один HTML - файл)
https://j3s.sh/thought/my-website-is-one-binary.html
однофайловый распространяемый веб-сервер
https://github.com/lipanski/docker-static-website

https://docs.parseplatform.org/parse-server/guide/

разные CMS
https://www.host-food.ru/faq/installation/

https://www.drupal.org/download
https://www.drupal.org/project/drupal
https://ru.wordpress.org/download/
https://downloads.joomla.org/
https://modx.com/download
https://get.typo3.org/
https://www.php-fusion.co.uk/home.php
https://www.django-cms.org/en/
https://plone.org/
https://www.opencart.com/index.php?route=cms/download
https://magento.com/tech-resources/download
https://www.prestashop.com/en/download
https://www.bitrix24.ru/
https://contao.org/en/
https://strapi.io/
https://apostrophecms.com/
https://github.com/getgrav/grav

установка
установка LEMP

Веб-сервер на основе Nginx и PHP-FPM
Оптимальная настройка Nginx
Виртуальные хосты в Apache и Nginx

Установка стека LEMP в Ubuntu 18.04
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04
Настройка сервера Linux Nginx, PHP 7, MySQL (LEMP) с поддержкой сертификата Let’s Encrypt в Ubuntu Linux 18.04 Bionic
https://www.digitalocean.com/community/tutorials/nginx-ubuntu-18-04-ru
Руководство по настройке блога WordPress на nginx.

Drupal
https://help.ubuntu.ru/wiki/drupal
Перед началом использования создайте для Drupal базу данных с помощью клиента mysql:
mysql -u root -p -e "CREATE DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;"
Также желательно завести отдельного пользователя MySQL, который будет иметь доступ только к созданной базе:
mysql -u root -p
вводим там запросы:





MySQL: Полный список часто используемых и полезных команд
посмотреть всех пользователей
SELECT User, Host FROM mysql.user;
SELECT User, Host, Password, password_expired FROM mysql.user;
увидеть разрешения для пользователя
SHOW GRANTS FOR 'test'@'localhost'
отзыв всех разрешений
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'test'@'localhost'
удалить пользователя test
drop user 'test'@'localhost'
SHOW DATABASES;
удалить базу
DROP DATABASE имя_базы_даных;

«Could not load MODX config file»
/setup/index.php

http://создаю-сайты.рф/как-войти-на-сайт-в-качестве-администр/
https://2ip.ru/cms/
chrome Wappalyzer



разные фреймворки
JavaScript подборка
Установка Node.js с помощью NVM
Шпаргалка по пакетному менеджеру NPM
---------------------------------------------------------------------------------------
Python подборка
Django подборка
если покопаться, то можно сделать бесплатный сайт на django

Установка Django CMS в Ubuntu 16.04 64bit
Ленивый деплой Django проекта UWSGI + NGINX (UBUNTU 20.04)
How To Set Up Django with Postgres, Nginx, and Gunicorn on Ubuntu 20.04
Запуск Django сайта на nginx + Gunicorn + SSL
Настройка Debian, Nginx и Gunicorn для Django проекта

установка Django в virtualenv с помощью pip через proxy с pyenv

Pelican: установка и базовая настройка сайта
Pelican. Расширенные настройки блога.
---------------------------------------------------------------------------------------
PHP подборка
https://www.yiiframework.com/
https://www.yiiframework.com/doc/guide/2.0/ru
https://github.com/yiisoft/yii2/tree/master/docs/guide-ru
centos docker yii

https://symfony.com/
https://laravel.com/
https://phalcon.io/ru-ru
https://nette.org/en/
---------------------------------------------------------------------------------------
https://rubyonrails.org/
http://rusrails.ru/
https://ru.wikibooks.org/wiki/Ruby_on_Rails
---------------------------------------------------------------------------------------
https://www.phoenixframework.org/
Начни изучать Elixir прямо сейчас! Перевод всей серии статей готов
Разработка приложений на Elixir/Phoenix с помощью Docker
---------------------------------------------------------------------------------------
http://zotonic.com/
---------------------------------------------------------------------------------------
Golang подборка
Revel — высокопроизводительный веб-фреймворк на языке Go

Разработка Web-приложений и микросервисов на Go с Gin
https://github.com/gin-gonic/gin

https://gobuffalo.io/
https://beego.me/

Как развернуть веб-приложение Go с помощью Docker и Nginx в Ubuntu 18.04

---------------------------------------------------------------------------------------
Java подборка
https://spring.io/
http://javastudy.ru/frameworks/spring/
https://javaee.github.io/javaserverfaces-spec/
http://javastudy.ru/frameworks/jsf-2-0/
https://vaadin.com/
http://www.gwtproject.org/
https://grails.org/
---------------------------------------------------------------------------------------
подборка С/C++
https://www.gnu.org/software/cgicc/index.html
https://github.com/drogonframework/drogon
https://www.webtoolkit.eu/wt
https://cutelyst.org/
Создание сайта с помощью C++
Сайт на C++ своими руками с помощью библиотеки cgicc
Простой backend на C++: это возможно?
Полноценный веб-сайт на C++ и немного диванной аналитики

всячина
Создаём личный «Архив интернета»
https://archiveweb.page/
------------------------------------------------------------------------
https://www.adminer.org/
https://phpdocker.io/generator
https://nginxconfig.io
https://github.com/digitalocean/nginxconfig.io

https://ngrok.com/download

------------------------------------------------------------------------
https://www.selenium.dev/
https://www.cypress.io/
https://playwright.dev/
https://nightwatchjs.org/
https://www.npmjs.com/package/puppeteer
JavaScript, Node, Puppeteer: автоматизация Chrome и веб-скрапинг
------------------------------------------------------------------------
Возрождение простых сайтов. Статика, 0kB JS, ничего лишнего
------------------------------------------------------------------------
Не ходи в Fediverse, там тебя ждут неприятности. — Ну как же туда не ходить? Они же ждут
https://fediverse.party/
https://the-federation.info/
https://joinmastodon.org/
https://github.com/mastodon/mastodon
https://hubzilla.org/
https://framagit.org/hubzilla/core
https://www.gnusocial.rocks/
https://notabug.org/diogo/gnu-social
------------------------------------------------------------------------
Как взламывают сайты
Как взламывают сайты (часть 2)
------------------------------------------------------------------------
хитрости
Некоторые приёмы работы в Битрикс на SQL и BASH
Как восстановить пароль администратора Битрикс
Как сбросить пароль для пользователей Bitrix?

ссылки

https://github.com/ripienaar/free-for-dev

Как сделать простой веб-сайт за один час
Как запустить простой статический сайт за пять ≈пятиминутных шагов при помощи Node.js и Express
Создаем свой персональный сайт на Github
GitHub как хостинг для сайтов
http://webquant.ru/posts/pelican/

Самостоятельная настройка VDS / VPS
Как начать участвовать в Open Source
Работа с GitHub
http://git-scm.com/book/ru/v1
http://hosting101.ru/more-providers.html

http://hldns.ru/
https://github.com/wavedocs/freedns/
Список бесплатных DNS-сервисов

Расшариваем веб-сайт на localhost в глобальную сеть интернет.
5 способов создать мгновенный легкий веб-сервер с помощью командной строки Linux
uzverss Бесплатный django хостинг
установка dokuwiki centos php nginx

Mало кто знает, что Github кроме превосходного хостинга ваших Git проектов
может также хостить ваш персональный сайт.
Например на нем расположен этот блог. В своей первой статье я
расскажу как максимально удобно настроить эту функциональность.

Read more... )
http://klen.github.io/github-blog.html

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 10th, 2025 04:48 am
Powered by Dreamwidth Studios