Comments 78
Очень разумно бэкапить репозитории обратно на гитхаб. Я бы не стал считать in-house бэкап-сервис хостера надёжным. Один взрыв в биллинге, и нет ни инстанса, ни бэкапа. Сколько бы там failsafe не было, бэкап должен быть под техническим контролем хотя бы двух разных юрлиц.
Легче всего селфхостится fossil.
Поэтому я его и использую. Буквально 5 минут и правила уже твои. И бэкапится тоже очень просто — репозиторий, это файл SQLite. Да и вообще нет нужда бэкапится – каждый клон репозитория – полноценная резервная копия.
У гита все так же. Вот только к хорошему (веб-интерфейс как минимум) быстро привыкаешь, а ведь кроме репозитория в gitlab есть еще и управление проектом, CI+CD, репозиторий контейнеров...
В fossil веб интерфейс из коробки, потому что fossil позиционируется не только как система контроля версии, но вообще как система управления кода (SCM — source code management). Там и система документирования есть и баг тракер и wiki. И все это в одном файле. Запускается буквально за 5 минут, администрируется просто, в поддержки почти не нуждается.
Скажите, какие CI/CD системы поддерживаются в fossil? TeamCity, Jenkins? Или там встроенная есть?
Поддерживается ли интеграция с LDAP как в GitLab?
Насколько просто интегрируется с системами статического анализа кода? Тот же вопрос только относительно SAST и DAST.
Есть ли поддержка контроля зависимостей? Например, обнаружение использования зависимостей с известными уязвимостями или запрещенных в проекте лицензий?
Как в fossil делается code review? Есть встроенные средства или интеграция с внешними?
О fossil и его функциональность можно прочитать очень подробно здесь: fossil documentation — много чего есть.
Но, сразу скажу, прямо деплоить на МКС из fossil не получится. Увы, что не, то нет.
О fossil и его функциональность можно прочитать очень подробно здесь: fossil documentation — много чего есть.
Я заглянул в документацию. Возможно плохо искал, но похоже, что ничего этого нет и не предвидится.
Можно конечно обойтись без этих фич, но зачем если GitLab умеет всё это из коробки и даже больше?
Только потому, что fossil ставится за 5 минут, а GitLab за 30?
Но, сразу скажу, прямо деплоить на МКС из fossil не получится. Увы, что не, то нет.
Если вы считаете, что это какие-то космические фичи, то это не так. Почти всё это если не необходимо, то очень желательно иметь в SCM.
Только потому, что fossil ставится за 5 минут, а GitLab за 30?
Это не так мало, как кажется.
Во первых, Fossil намного надежнее (потому что проще и потому что ACID) чем вся та куча что нужна с git.
И нуждается в намного меньше ресурсов на сервере.
А еще, кроме те 5 минут, fossil совершенно не нуждается в поддержке. Он просто работает на сервере неограниченно долго без вмешательства администратора.
К тому же, fossil намного проще git, а команды интуитивнее и консистентнее — прямое олицетворение принципа KISS.
В одной из статей опубликованных на хабре я в комментах вычитал
А разве в этой статье не было написано, что репозитории удаляют? Потому что они нарушают правила сервиса. Так же в статье до этого, на хабре, было написано что создатели deepnude заявили, что если вы качаете и сохраняете их приложение, то вы нарушаете лицензионное соглашение. Т.е. вы такие прочли, ага поняли. И полезли на сторонний сервис нарушать правила. Или как это работает у вас?
Вот представьте в тот роковой день, мог бы потребоваться критический баг фикс, как мне его сделать если я поуши в облачной экосистеме gitlab.com и не могу деплоить без него?
В облаке хорошо до поры до времени, но никто не застрахован от аналогичного или ошибочного бана. Ведь все так просто, админы нажали кнопочку и ты не имеешь доступа, потом пишешь в саппорт, ждешь по полдня ответ. Конечно если у вас тариф Gold они обещают быстрый саппорт, но у меня к сожалению был Bronze, и если бы в тот момент была кнопочка купить Gold я бы купил, проще заплатить. Но реально выход в тот момент был только один.
Так же в статье до этого, на хабре, было написано что создатели deepnude заявили, что если вы качаете и сохраняете их приложение, то вы нарушаете лицензионное соглашение.
А это вообще очень сомнительное утверждение. GNU GPL нельзя просто так взять и отменить. Авторы могут только заменить лицензию в следующей версии.
«Несмотря на меры безопасности (водяные знаки), если ваше приложение используют 500 000 человек, то неизбежно возрастает риск злоупотреблений. Мы не хотим зарабатывать деньги таким способом. Конечно, некоторые копии DeepNude разошлись по Сети, но мы не хотим продавать программу. Если вы скачиваете программу из других источников или сами распространяете её, то нарушаете условия использования на нашем сайте. С этого момента DeepNude не выпускает новые версии и не даёт никому разрешений на использование. А также не выдаёт лицензий на активацию премиум-версии», — сказано в твиттере.
Законы конечно можно извратить, а правила изменить в любой момент, но если в соглашении явно написано «вы соглашаетесь что мы продаём вашу душу» — это сильно помогает избежать проблем ещё до их возниковения.
Да и вообще мне кажется логичным что перед тем как хостить что-то где-то (контент, сервер, сервис etc) нужно узнать, разрешено ли это (хотя бы на момент прочтения правил).
PS: Договора на кредиты/страховки/аренду/etc вы тоже не читаете, не глядя подписываете? Всё равно же «ведь любые законы можно извратить как угодно»…
Также иногда я сам пишу договоры, и естественно вникаю в каждую букву.
В отношении гитлаб и других иностранных сервисов не надо забывать тот факт что все эти соглашения не могут противоречить законодательству той страны где зарегистрирована их компания, также они не должны нарушать законодательство страны откуда их клиент.
Поэтому читающему надо углубляться в юридические аспекты не только соглашения но и законодательства стран. Т.к. в соглашении может быть что-то не указано/указано не корректно.
Например в РФ есть закон о защите прав потребителей, и он поидеи мог бы защитить меня ведь я покупал у них тариф Bronze, да вот беда:
Выдержка из преамбулы: потребитель — гражданин, имеющий намерение заказать или приобрести либо заказывающий, приобретающий или использующий товары (работы, услуги) исключительно для личных, семейных, домашних и иных нужд, не связанных с осуществлением предпринимательской деятельности;
Т.е. как только я начал получать прибыль из предоставляемой гитлабом услуги, то я уже не потребитель.
И представьте себе сколько подобных ситуаций с которыми мы еще не столкнулись. Это хочется окончить процитировав И.В. Гете:
Суха, мой друг, теория, везде,
Но древо жизни пышно зеленеет.
Поэтому сведу все свои мысли только к одной лишь цитате:
Суха, мой друг, теория, везде,
Но древо жизни пышно зеленеет.
Законы конечно можно извратить, а правила изменить в любой момент
Вот как раз наличие фразы "Мы имеем право изменять условия настоящего соглашения без предварительного уведомления" почти в каждом первом соглашении, напрочь лишают смысла его прочтение.
Это не говоря уже о том, что при обновлении версии, обычно нет возможности посмотреть изменения и предыдущую версию.
И никаких гарантий что то что я статью сейчас вообще имеет орошение к этим правилам. Как они вообще мигать доказать что когда я галку нажимал, пункт 35.1 выглядел именно так? Теоритически можно организовать какой-то независимый сервис (с блокчейном и дамами), который будет все это верифицировать, но на практике суд должен полагаться на внутренние логи и процедуры компании, которые вообще никем не регулируются. Иногда эти правила хотя бы про почте присылают, это хоть какая-то возможность заморозить подписанную версию. А обычно есть только ссылка на нестатичную страницу
Договора на кредиты/страховки/аренду/etc вы тоже не читаете, не глядя подписываете? Всё равно же «ведь любые законы можно извратить как угодно»…
Меня недавно шокировали друзья. Оказывается, договора на страховку по кредиту в РФ — это мусор. Вы можете их вдумчиво читать, но деньги при наступлении страхового случая вам не отдадут, просто наплевав на все договора и законы. Полагаю, многие, как и я, не в курсе, так что пользуюсь удобным случаем чтобы сообщить, что есть вот такая информация.
В соглашениях иногда забавные правила описывают, например, с помощью iOS запрещается управлять атомными электростанциями. Или, например, macOS можно запускать в виртуальной машине внутри оригинальной системы, но только одну копию, но смысла обычно нет из-за отсутствия ускорения графики.
А, чуть не забыл, на одном иностранном видеокурсе по генетике я не стал регистрироваться по простой причине — любое судебное разбирательство с привлечением моего аккаунта — я по умолчанию виноват и всё оплачиваю. Потом бояться будешь пересказать оттуда что-либо.
тк была известная история, когда Gitlab потерял данные из-за того, что backupы не работали, с тех пор держу два инстанса: primary и backup. кажду ночь делаю backup на primary и восстанавливаю на backup, следя за ошибками при восстановлении. таким образом всегда знаю — у меня есть бэкап и он точно работает. из минусов такого — иногда на backup инстансе заканчивается место — но об этом я тоже вовремя узнаю. сейчас это делается всё легко, не так как лет 6 назад, когда гитлаб только становился на ноги…
Если сменить тип репозитория на приватный, то всё ОК.
Но забанили весь аккаунт, да так что никакого доступа в гитлаб я не имел
Гитхаб
выложенные кем то и форкнутый репозиторий (скажем так — были подозрения что прилетит DMCA на оригинал),
через некоторое время — удаление оригинала по DMCA и ответ про DMCA в том числе и на моем форке.
При этом в JIRA repository scanner (который все сканирует) отказался нормально работать потому что github какую то фигню отдает вместо удаленного и не дает удалить руками.
Саппорт удалил после запроса и сказал что не надо нарушать правила а то за повторы — могут быть приняты меры, а мол то что форк — ну да они понимаю что сложно разбираться — но все же за контент на своем аккаунте мол я отвечаю даже если это форк.
И все.
Вы бы хоть пояснили кратенько, что это за deepNude такой, и зачем кому-то делать его форк…
На мой взгляд достаточное интересное ПО (с моей программерской точки зрения), но то что оно вызвало недовольство некоторой части общества, мне вполне понятно, мало кто хочет быть невольно раздетым и опубликованным. Потом попробуй докажи что это фейк.
Тут более подробно, там же найдете комменты со ссылками на гитлаб которые уже не работают
А кстати, почему на gitlab бан выдает 404? Разве не должно быть 403?
Поделитесь docker-compose, пожалуйста
version: "3"
services:
gitlab:
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
restart: always
image: gitlab/gitlab-ce:latest
hostname: 'gitlab.yourdomain.com'
ports:
- "23:22" // мапим ssh на 23 порт (в локальном origin обращаемся к гитлабу ssh://git@ip:23/username/repo-name,)
- "80:80"
environment:
GITLAB_HTTPS: 'true'
SSL_SELF_SIGNED: 'true'
GITLAB_SHELL_SSH_PORT: 23
GITLAB_PORT: 80
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.yourdomain.com'
gitlab_rails['sentry_enabled'] = true
gitlab_rails['sentry_dsn'] = ''
gitlab_rails['sentry_clientside_dsn'] = ''
gitlab_rails['sentry_environment'] = 'production'
gitlab_rails['backup_upload_connection'] = {
'provider' => 'AWS',
'region' => 'eu-central-1',
'aws_access_key_id' => '',
'aws_secret_access_key' => ''
}
gitlab_rails['backup_keep_time'] = 1728000
gitlab_rails['backup_upload_remote_directory'] = ''
volumes:
- ./config:/etc/gitlab:Z
- ./logs:/var/log/gitlab:Z
- ./data:/var/opt/gitlab:Z
version: '3'
services:
gitlab-runner:
image: gitlab/gitlab-runner:latest
restart: always
privileged: true
volumes:
- ./cache:/cache
- ./config:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
На фронт Gitlab, трафик проксируется через cloudflare, поэтому подключение к git не по домену а по ip
Скоро опишу все более подробно, но разобраться я думаю можно
Быстрым решением было свалить на gogs+droneci(который уже использовал с github). Потом переехал на self-hosted gitlab.
Из всех переписок из саппортами было видно только одно — если код в вашем профиле или в группе, за которой торчиш — то виноват всегда ты.
Попутно завёл там себе акк, защищённый от всяких DMCA нападок. Тот же popcorn потом скопирую туда. Но надо быть осторожным с хранением там личных проектов, всё-таки китай…
Поймал бан за форк deepNude на gitlab.com