Настраиваем простой Git сервер

Допустим у нас есть домашний сервер с ip 8.8.8.8 и нам надо на нем развернуть git сервер, для этого необходимо на сервере выполнить:

  1. sudo adduser git - создадим пользователя git
  2. su git
  3. cd ~
  4. mkdir .ssh && chmod 700 .ssh - создадим каталог .ssh
  5. touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
  6. cat /путь к ключу одного из разрабов/id_rsa.pub >> ~/.ssh/authorized_keys - добавляем открытые SSH-ключи разработчиков (столько ключей, сколько разработчиков) в файл authorized_keys.
  7. mkdir git
  8. cd git
  9. mkdir project.git
  10. cd project.git
  11. git init --bare - создаем репозиторий без рабочего каталога. Это самая главная строчка по сути с ее помощью мы и создали git сервер. Заметьте, что кто-то должен заходить на сервер и создавать голый репозиторий каждый раз, когда вы хотите добавить новый проект.

Допустим на локальном компе Васи есть проект и он послужит первоисточником:

  1. cd myproject
  2. git init
  3. git add .
  4. git commit -m 'Initial commit'
  5. git remote add origin git@8.8.8.8:/home/git/git/project.git - файлы проекта залиты на сервер.

Теперь все остальные могут клонировать проект: git clone git@8.8.8.8:/home/git/git/project.git


4.4 Git на сервере - Настраиваем сервер

Проброс портов на Mikrotik

Для наглядности представим что у нас есть внешний статический ip и допустим у нас есть локальный компьютер с ip 192.168.0.10. Мы хотим сделать возможным подключаться к нему по ssh (22 порт) через интернет. Но мы хотим чтоб из интернета подключались например к порту 9022.

Читать дальше...

Базовые заметки про docker

Шпаргалка по командам докера

  • docker system prune - удалит остановленные контейнеры, все висячие образы и все неиспользуемые сети

контейнер

  • docker run имя_контейнера - запуск контейнера (можно указать образ:тэг, тогда поднимется новый контейнер)

    • -d - в фоновом режиме
    • --name название_контейнера - со своим названием контейнера
    • -p 8080:80 - проброска порта (портНаХостовойМашине:портКонтейнера)
    • -e MYSQL_ROOT_PASSWORD=123456 - пробрасывает переменные окружения внутрь контейнера
  • docker stop имя_контейнера - остановка контейнера (вместо имени можно указывать id)

  • docker rm имя_контейнера - удаление контейнера

  • docker exec -ti название_контейнера /bin/sh - заходим в запущенный контейнер

  • docker logs -f название_контейнера - посмотреть логи внутри контейнера

  • docker ps - отображает список запущенных контейнеров

    • -a - отображать все, в том числе и не запущенные контейнеры
  • docker inspect название_контейнера - показать данные контейнера (ip, пути к volumes и т.д.)

  • docker container prune - удаляет ВСЕ остановленные контейнеры.

Читать дальше...

Помощник по работе с базами данных GreenPig

  1. Вступление (!!!!)
  2. Подключение библиотеки
  3. Класс Where
    • Атомарная часть запроса
    • Сложные запросы
  4. Класс Join
  5. Класс Query
    • Выборка из БД с вложенными параметрами
    • Многократное объединение с самим собой во имя поиска
  6. Послесловие
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
╔═══╗╔═══╗╔═══╗╔═══╗╔╗─╔╗────╔═══╗╔══╗╔═══╗
║╔══╝║╔═╗║║╔══╝║╔══╝║╚═╝║────║╔═╗║╚╗╔╝║╔══╝
║║╔═╗║╚═╝║║╚══╗║╚══╗║╔╗─║────║╚═╝║─║║─║║╔═╗
║║╚╗║║╔╗╔╝║╔══╝║╔══╝║║╚╗║────║╔══╝─║║─║║╚╗║
║╚═╝║║║║║─║╚══╗║╚══╗║║─║║────║║───╔╝╚╗║╚═╝║
╚═══╝╚╝╚╝─╚═══╝╚═══╝╚╝─╚╝────╚╝───╚══╝╚═══╝

5HHHG
HH HHHHHHH
9HHHA HHHHHHHH5
HHHHHHHHHHHHHHHHHH 9HHHHH5
5HHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHH
;HHHHHHHHHHHHHHHHHHHHHHHHHHA
H2 HHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHH9
HHHHHHHHHHHHHHHHHHHHHHH
AHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHH9 iHS
HHHHHHHHHHHHHHHHHHHHHHhh
HHHHHHHHHHHHHHHHHH
AA HHHHHHHHHHHHHH3
&H Hi HS Hr
& H& H& Hi

Читать дальше...

Иван Победа: Темная сторона Силы

  1. Вступление
  2. Каноничный Иван Победа
  3. Закат Ивана Победы
  4. Mr.Cryply и новый чудный криптомир
  5. Священное Королевство Ламботеро
    1. Что такое Ламботеро?
    2. Какие цели преследует проект Ламботеро?
    3. Финансовая сторона вопроса
    4. Кто основатель?
  6. Плейлист "Ламботеро | Lambotero"
    1. Иван Победа | Великая Интеграция | Пилотный Выпуск.
    2. Ламбократия | Великая Интеграция
    3. В чем смысл? | Великая Интеграция
    4. Ламботерийская мудрость которая может изменить все
    5. Первое Квантовое Государство - Ламботеро
  7. Рождение Квантового Ивана
    1. Мировоззрение Квантового Ивана
    2. Цитаты Квантового Ивана
  8. Плейлист "Квантовый Иван"
    1. Что со мной произошло и где "старый" Иван Победа?
    2. Реальный, виртуальный и квантовый мир. Что лучше?
    3. Как пробить дно? | Квантовый Иван.
    4. Запрещенная тема. Ищем ключ. | Квантовый Иван
    5. Запрещенная тема. Трансовые психотехники. Самогипноз и т.д.
    6. Запрещенная тема. Наркотики. Психоделики. Теория
  9. Еще одна секта...
  10. Заключение
    1. Подытожим
    2. Противоречивый Иван
    3. Мое мнение

Читать дальше...

Как забэкапить систему в virtualBox

В качестве лайт версии бэкапа можно делать “снимки”. Снимок - сохраненное состояние системы и позже всегда можно откатиться до этого состояния. При этом удаленные файлы не восстановятся (аналог “точки восстановления” у windows).
В моей версии к снимкам можно перейти с “главного экрана” (как показано на рисунке).

бэкап VB

Бэкап или перенос гостевой ОС

  1. Правой кнопкой мыши нажимаем на нужную гостевую ОС (как показано на рисунке)
  2. Выбираем “Показать в проводнике”
  3. Содиржимое папки это и есть наша гостевая ОС, бэкапим ее.

Клонирование системы

  1. Правой кнопкой мыши нажимаем на нужную гостевую ОС (как показано на рисунке)
  2. Выбираем “Клонировать” (Ctrl+O)
  3. Вводим имя
  4. Выбираем полное кланирование (чтоб можно было переносить на другой комп, и вообще чтоб бэкап был полностью изолирован).
  5. Выбираем “Состояние машины” (к чему нам снимки)
  6. Все готово. Рядом с оригенальной гостевой ОС появляется наш клон.

Котя 2005 - 2018

Пройденная жизнь имеет ту ценность,
которая остается в сердцах живых.
Что наша жизнь? Секунда, миг…
Уснул, проснулся, ты — старик…

С самого рождения он отличался от своих братьев и сестер: его ярко-рыжая шерстка выделала Котю из прочих котят. И даже не смотря на то, что глаза у него еще не открылись, чувства обоняния и осязания отлично служили ему, позволяя узнавать своих братьев, сестер, маму и своего будущего хозяина, который на тот момент учился в 7 классе.

Читать дальше...

frontend

Установка Gulp:

  1. Устанавливаем Node.js (если не установлено)
  2. Устанавливаем gulp npm install gulp -g (один раз - глобально) ??? нужно??
  3. Открываем папку с проектом в консоле
  4. npm init - создает файл package.json, который содержит информацию о проекте (описание проекта и зависимости).
  5. npm install gulp --save-dev - устанавливаем gulp в папку с проектом

Примечание: npm install gulp --save-dev === npm i gulp -D (алисы не везде работают)
6. Перечень необходимых пакетов:
* npm i browserify -D - позволяет вам использовать стиль node.js модулей для работы в браузере. Мы определяем зависимости и потом Browserify собирает их в один маленький и чистенький JavaScript файл.
* npm i vinyl-source-stream -D - виртуальная файловая система для чтения/записи файлов. Получаем выходные данные Browserify и сохранить их в файл с помощью Gulp.
* npm i rimraf -D - полностью очищает каталог
* npm i stringify -D - позволяет подключать статические файлы, например шаблоны.
* npm i gulp-sftp -D - закачиваем изменения по ssh
Примечание: При установки все скаченые модули располагаются в папке node_modules, зависимости прописываются в файл package.json. Если папка node_modules удалена, но в package.json прописаны зависимости, установить все пакеты можно командой npm install.
7. Создаем в корне проекта файл gulpfile.js Ниже показано содержимое файла.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// импорт npm модулей в проект
var gulp = require('gulp'),
browserify = require('browserify'),
source = require('vinyl-source-stream'),
rimraf = require('rimraf'),
stringify = require('stringify');

var sourceFile = './src/main.js', // местоположение главного нашего js файла, точки входа
destFolder = './dist', // местоположение финального файла
destFile = 'bundle.js'; // имя, которое мы хотим дать нашему финальному файлу

// Сбор проекта в один файл
gulp.task('build', function() { // [0]
return browserify(sourceFile) // [1]
.transform(stringify({extensions: ['.tpl'], minify: true})) // [2]
.bundle() // [3]
.pipe(source(destFile)) // [4]
.pipe(gulp.dest(destFolder)); // [5]
});

[0] данная функция вызывается в консоле так: gulp build. В формальных параметрах могут также указываться функции, которые необходимо выполнить до начала работы данной функции, например gulp.task('build', ['copy-static'], function() { вызываем сначала функцию copy-static.

[1] главное тут в Browserify, ему передаем точку входа в наше приложение

[2] transform - метод Node, с которым можно работать благодаря browserify. Преобразует поток нужным образом.
stringify - позволяет подключать статические файлы, например шаблоны.
extensions: [‘.html’, ‘.tpl’, ‘.hbs’] - указываем форматы каких статических файлов можно подключать и позволяет складывать их в переменную
minify - минимизирует файлы
Пимечание: если в gulpfile.js не указать stringify, то в файлах проекта нельзя будет подключать шаблоны: var AppTpl = require('./../templates/App.tpl');

[3] используем потоковый Browserify API для того, чтобы вернуть поток с нашим JS контентом

[4] [5] перекидываем информацию из потока в файл и сохраняем его в директорию.

Примечание: Функции require, pipe и transform относятся к Node:

1) require - метод для импорта модулей, JSON-файлов, папок и т.д.
2) pipe - принимает поток, который используется для передачи читаемого потока в записываемый.
3) transform - метод Node, с которым можно работать благодаря browserify. Преобразует поток нужным образом.


args = require(‘yargs’).argv;

gulp.task(‘test’, function () {

var env      = args.env || 'prod'; // команда в консоле: gulp test --env df (выводит df)
console.log(env);

});












https://loftblog.ru/material/gulp-js-rabotaem-s-css-concat-minify-rename-notify-watch-dest/
https://www.8host.com/blog/nachalo-raboty-s-gulp-js/
http://www.creative-seo.ru/blog/gulp-dlya-nachinayushchih/
http://pugofka.com/blog/technology/the-prepared-starting-package-front-end-development-on-gulp/
http://getinstance.info/articles/tools/introduction-to-gulp/
https://habrahabr.ru/post/224825/ !!!!!

http://www.creative-seo.ru/blog/gulp-dlya-nachinayushchih/