Это история не про волшебный успех, а про несколько заходов в одну и ту же мечту.
Началось всё довольно банально: обычная работа, достаточно стабильная, но такая, от которой с годами будто становится тесно внутри.
Электрика, щитки, кабели — нормальная профессия, нормальная жизнь.
Только всё чаще ловишь себя на мысли: «А это точно то, чем я хочу заниматься ещё десяток лет подряд?».
А ещё, как назло, у меня в друзьях откуда-то взялись программисты. Из каких-то знакомств, прогулок, увлечений ты для себя выделяешь людей, с которыми хотел бы общаться.
И как правило в наше время много молодых (да и уже не очень) адекватных и приятных людей в интеллектуальной сфере.
А вот что они могли найти в общении со мной - тайна, покрытая мраком.
В какой-то момент терпение лопнуло, и вместо привычного «потом как-нибудь» появилось твёрдое «нет, сейчас».
Самый очевидный на тот момент путь — "веб-разработка". Открываешь интернет, набираешь «как войти в IT», и тебя по голове сразу бьёт связка HTML/CSS/JavaScript.
Я сделал то, от чего многие отговаривают: оставил работу и сел учиться как на полноценную смену. Не «часик вечером», а именно режим «это теперь моя основная деятельность».
Получилось бесплатно залететь на курс от одной известной онлайн школы. Ну что сказать? Воды там больше, чем у меня в чайнике.
Не то, чтобы совсем бесполезно, но их бизнес - это учить вас, желательно годами, желательно за дорого.
А вот научитесь вы или нет - дело ваше )) В любом случае не стоит слушать советы рандомных людей из интернета, типо меня, кстати )). Я отвлёкся.
Утром — кофе и туториалы, днём — практика, вечером — разбор ошибок и очередной курс. Да, именно курс. Как оказалось инфу надо черпать из разных источников.
Ведь невозможно чему-то научить, возможно только научитьСЯ - это я где-то подслушал, не сам такой умный )).
Фронтенд заполнил всё пространство вокруг.
Пошли первые пет-проекты, какие-то лендинги, маленькие приложеньки. "Портфолио" потихоньку пухло, как и моя голова, а уверенность — не особо.
Когда дошло до резюме и собеседований, иллюзии начали падать одна за другой. На бумаге «джун фронтендер» звучит бодро, на деле таких анкет — сотни, тысячи.
Трусами не отмахаешься от желающих лежать на Бали со смузи )).
Пара собесов, вежливые отказы, долгие паузы в стиле «мы вам обязательно напишем» — и не пишут - классика жанра.
Где-то в этом месте стало ясно: мир не обязан порадоваться тому, что ты внезапно решил поменять жизнь.
Параллельно своя линия истории шла у жены. Она тоже решила сменить профессию, ушла в дизайн — и у неё как раз всё получилось.
И вот тут во второй раз в кадр заходит наша любимая IT-шечка в лице одной книги... И очень настойчивое «а что, если ещё раз, но уже по-другому?».
Новая работа, интересные проекты, люди, которых радует результат её труда. Радость за неё была честной.
Но внутри это очень метко подсвечивало контраст: «вот человек попробовал и выстрелил, а ты попробовал и… ну, не очень».
Запасы денег не бесконечные. В какой-то момент стало понятно: эксперимент нужно останавливать. Я свернул фронтенд-эпопею и вернулся к привычной работе.
С точки зрения выживания — правильное решение. С точки зрения внутреннего ощущения — как будто нажал «откатить изменения».
Но, как потом оказалось, прежнем ты уже не станешь, если достаточно далеко погрузился в эту "кротовью нору" - тебя будет тянуть дальше.
Словно скалолаз, едва покоривший маленькую скалу, не успев отдышаться, смотрит на скалу побольше. Ну или типа того, не знаю. Аллегорию покрасивее можете сами придумать.
На этом месте многие истории и заканчиваются. Серьёзно, многие. Человек честно пытался, обжёгся, сделал вывод «не моё» и дальше живёт, подшучивая над прошлой попыткой. Я тоже попробовал так сделать.
Начался полуторагодовой перерыв. Никаких курсов, никаких «ещё одно видео по реакту».
Я сознательно отодвинул эту тему: работа, дом, какие-то старые хобби, сериальчик вечером — жизнь снова стала «обычной».
Почти получилось забыть. Почти.
И вот тут во второй раз в кадр заходит наша любимая IT-шечка в лице одной книги... И очень настойчивое «а что, если ещё раз, но уже по-другому?».
Еще пару лет назад фраза «второе гражданство» звучала как что-то далекое, почти мифическое. Мол, паспорт другой страны — это для сверхбогатых, айтишников с акциями или для тех, кто сидел на чемоданах задолго до 2022 года. Но все изменилось.
Теперь «паспорт за инвестиции» или «ВНЖ в Европе» — тема почти бытовая. Люди всерьез рассматривают второе гражданство как способ обезопасить семью, бизнес и сохранить привычный образ жизни.
Вот только вместе со спросом вырос и целый рынок, где вместо юристов — маркетологи, вместо законов — легенды, а вместо документов — обещания.
Как все началось: от шока к ажиотажу
В начале 2022 года россияне массово начали гуглить «второе гражданство». Интерес к Израилю, Сербии, Португалии, Армении, Мексике взлетел в десятки раз. Telegram‑каналы, YouTube‑блоги, форумы превратились в ярмарку «гражданств под ключ».
На волне этой паники на рынок повалили сотни новых компаний. Ни юридического опыта, ни связей с миграционными ведомствами — ничего. Зато море рекламы: красивые ролики, респектабельные логотипы, обещания готового «паспорта за 6 месяцев». Кто‑то придумал названия с намеком на консалтинговые корпорации, кто‑то просто вел блог с «успешными кейсами» — якобы уже 200 клиентов получили паспорта с их помощью.
Реальность быстро показала, что за многими из этих громких вывесок — один ноутбук и фрилансер на диване.
Рынок на доверии и авансе
Механика была проста: ты вносишь 10–50 тысяч долларов за «подготовку документов», ждешь год, потом еще год — и... все. Никаких паспортов. Никаких официальных ответов. Адреса исчезают, сайты пропадают, менеджеры «в отпуске».
По сути сформировался рынок ожиданий: «плати сейчас, а результат — когда-нибудь».
Почему это сработало
Потому что люди верили мошенникам.
Юридически процесс получения гражданства и правда долгий — даже в полностью легальных схемах он занимает месяцы, иногда годы.
Психологически — люди уставали ждать и хватались за обещания «ускорить работу».
Этически — кому приятно признаваться, что тебя обманули, когда ты сам искал обходные пути закона?
Информационно — реклама в YouTube и Telegram делала свое дело: эксперты‑самоучки продавали мечту.
Добавьте сюда нежелание разбираться в деталях произошедшего и признаваться в незаконных действиях — и получите идеальную почву для мошенничества.
География разочарований
К 2023 году стало понятно: масштаб обмана огромный. Сербия, Армения, Мексика, Парагвай — фейковые миграционные агенты продавали липовые документы этих стран.
Сербия. Обещали «гражданство за год по президентской программе инвесторов». На деле — выдумка. Реальный путь минимум три года проживания и интеграции.
Армения. С 2023‑го рекламировали «упрощенку», ссылались на «своих людей в МИД». Итог — лавина фальсифицированных документов.
Дубай. Отдельная глава — «мексиканские паспорта», напечатанные на настоящих бланках, но не существующие в базе. Люди думали, что у них подлинные документы, но на деле держали в руках дорогой кусок бумаги.
Парагвай и Доминикана — к 2025 году стали символом «гражданства из мессенджера»: звучит романтично, но к реальности не имеет никакого отношения.
Когда рынок сказал: «Хватит!»
После волны разочарований 2024–2025 годы стали этапом отрезвления. Люди начали искать гарантии, а не «связи». Работать начали только действительно легальные схемы — с официальными юристами, договорами, офисами, лицензиями.
Израиль — надежная программа по Закону «О возвращении». Все прозрачно: доказал еврейское происхождение до 3 колена, прошел собеседование с консулом, получил визу и оформляешь гражданство уже в стране.
Европа — возвращение к классике: живи, интегрируйся, сдавай экзамен. Инвестиционные гражданства для россиян больше недоступны.
Турция — по‑прежнему держит курс на инвестиции: вложи 400 000 $, купи недвижимость — получи гражданство. В отличие от стран ЕС, инвестиционные паспорта доступны гражданам РФ.
ОАЭ — дают долгосрочный ВНЖ инвесторам, предпринимателям, специалистам. Да, жить в стране можно, но паспорт никто автоматически не выдаст.
Азия и Средняя Азия — Кыргызстан и Казахстан, наоборот, закрыли упрощенные программы получения гражданства, опасаясь потока заявителей.
То есть к 2025 году мы видим очевидное: быстрых схем больше нет. Хочешь гражданство — будь готов к бумажной работе, экзаменам и проживанию в стране.
Как распознать мошенника
В условиях, когда «экспертов по второму гражданству» все еще тысячи, главный вопрос — кому верить?
Вот чек-лист, который мог бы сэкономить россиянам десятки тысяч долларов в 2022 году:
Лицензия и юрлицо. Любая миграционная компания обязана быть зарегистрирована официально, с открытыми реквизитами — и без отговорок «в Европе это не требуется».
Прозрачный договор, подписанный между вами и исполнителем, а не с загадочным партнером.
Адрес и публичные имена. Компании, у которых нет офиса или юристов в открытом доступе, сразу должны попадать в черный список.
Сроки. Если официально страна рассматривает заявки два года, а вам обещают второй паспорт «за полгода без визита» — бегите.
И еще — все всегда можно проверить на официальных сайтах. МИД, МВД, консульства публикуют списки правил и реальные условия получения гражданства. Не верьте инфлюенсеру, верьте министерству.
Израиль — по праву рождения
Израиль по‑прежнему остается одной из немногих стран, предоставляющих возможность получения гражданства на основании этнического происхождения. Закон «О возвращении» дает право на репатриацию потомкам евреев и их близким родственникам, включая супругов, детей и внуков, а также вдов/цов евреев. Пакет документов, проверка происхождения, интервью и… билет в новую реальность: виза, переезд, а сразу по прибытии — гражданство.
Важно: получить право на паспорт Израиля возможно только документально или через гиюр — длительный духовный путь принятия иудаизма. Это не обход закона, а выбор образа жизни. После него — те же правила репатриации, что и по происхождению.
Многие проходят гиюр и в Израиле, и за его пределами, обучаясь в диаспорных школах, религиозных семинариях при признанных раввинах. Ни один из этих путей не предполагает взяток или серых схем. Здесь главное — вера, вовлеченность и честность.
Таким образом, получить паспорт Израиля могут только евреи — по крови или вероисповеданию.
Новая культура иммиграции
После всех описанных фейков рынок словно переродился. К 2025 году стало ясно: паспорт — не товар, а итог юридической процедуры. Люди стали отличать мифы от легальных инструментов.
Сейчас существуют два мира услуг по второму гражданству:
Теневой — тихо существует на форумах, торгует «проверенными схемами» и «контактами в посольствах».
Официальный — лицензированные юристы, аккредитованные консультанты, работающие по закону конкретной страны.
В 2022 году рынок утонул в иллюзиях, но уже через три года маятник качнулся в другую сторону: все идут туда, где договор прозрачный и есть право подтверждения статуса на государственном уровне.
Клиент 2025 года — холодный прагматик
Интересно, как быстро изменилась психология.Раньше главной мотивацией клиентов была было обхитрить систему. Теперь — действовать в рамках закона.
Современный клиент не хочет купить бумажку, он хочет получить документ, который пройдет проверку в другом государстве. Теперь он спрашивает не как обойти закон, а как легализовать свое право. Он требует отчеты, юридические гарантии и прозрачные счета.
Можно сказать, что за этот небольшой период выросло поколение юридических иммигрантов — тех, для кого честность стала выгоднее риска.
Обращайтесь в полицию страны, где зарегистрирован исполнитель. В Европе и Израиле можно подать заявление онлайн.
Делитесь своей историей в соцсетях. Юридические ассоциации часто помогают выявить и остановить мошенников.
Даже если деньги не вернуть, ваша история может спасти других. Чем больше огласки, тем меньше новых жертв у аферистов.
Что нас ждет дальше
Эксперты прогнозируют: 2025–2026 годы станут временем стабилизации. Государства уже подстраивают законы под новую реальность:
сокращают бюрократические процедуры для инвесторов и специалистов,
переводят подачу заявлений в онлайн‑форматы,
усиливают контроль за посредниками,
вводят финансовые гарантии для агентств и консультантов.
Израиль уже продвигает цифровую проверку происхождения и онлайн‑сервисы для репатриации. ОАЭ тестируют платформы, где заявитель может продлить ВНЖ удаленно, буквально в несколько кликов. Даже европейские страны, известные своей бюрократической медлительностью, начали внедрять электронные порталы для подачи документов.
Это не просто «удобство» — это способ вытеснить псевдопосредников, которые кормились именно за счет неизвестности процедуры и страха заявителя.
Постепенная институционализация
Через пару лет рынок второго гражданства перестанет быть стихийным. Ожидается, что появятся:
официальные реестры аккредитованных посредников,
международные ассоциации иммиграционных юристов,
механизмы финансовой ответственности агентств,
и даже рейтинги по уровню прозрачности.
То есть вместо «вот тут дядя Серёжа поможет за 15 тысяч» появится система «вот сертифицированный консультант с лицензией, рейтингом и страховым депозитом».
Иными словами, рынок взрослеет, но сейчас все еще переходный период.
Серая зона не сдается
Несмотря на то что правовое поле ужесточается, в 2025 году серые консультанты по‑прежнему живут — и неплохо. Они переместились в закрытые Telegram‑чаты, где публикуют ничем не подтвержденную информацию под маской эксперта. И это работает на тех же эмоциях, что и раньше: страх, срочность, надежда.
И все равно именно 2025–2026 годы могут стать переломным моментом во всей этой истории: либо окончательно вытеснят фикцию, либо рынок снова уйдет в тень.
Главное — не забыть уроки
Если попробовать подвести итог бурным трем годам, картина выходит парадоксальная. С одной стороны — тысячи обманутых, украденные деньги, сломанные ожидания. С другой — именно этот кризис стал точкой взросления рынка и клиентов.
Теперь все больше россиян понимают простую истину: никакое гражданство нельзя купить без участия самого государства. Все ускорители процедур, заоблачные гарантии и ничем не подтвержденные связи — это выдумка тех, кто продает мечты, но не документы.
Осторожный оптимизм
К 2025 году тенденция очевидна:
люди отказываются от «экспресс-паспортов» и выбирают легальные основания получения второго гражданства— учеба, труд, инвестиции, родственные связи, религиозные программы;
компании переходят в белое поле, нанимают юристов, создают департаменты комплаенса;
государства готовятся к глобальной проверке миграционных сервисов.
Да, рынок потерял легкие деньги. Зато приобрел доверие, законность и репутацию.
В итоге
Второе гражданство перестает быть предметом роскоши или аферы. Оно становится юридическим инструментом, где на первом месте — ответственность. 2022–2023 годы были временем обещаний и иллюзий. 2024–2025 — временем очищения и взросления.
Люди осознали: легче потратить время на проверенные пути, чем терять деньги на красивых презентациях. И когда разговор снова заходит о паспортных возможностях, все чаще звучит не вопрос «где купить?», а вопрос «где легально и прозрачно оформить?».
💬 Обсудим?
Вы верите, что рынок реально очистится от аферистов— или на смену старым просто придут новые?
Знаете ли вы лично тех, кто «купил» паспорт и до сих пор его ждет?
И есть ли, по‑вашему, вообще моральное оправдание тем, кто пытается ускорить процесс получения гражданства, обходя законы?
Пишите в комментариях. Как всегда внизу начинается самое интересное.🔥
Ищу подработку онлайн. В hh.ru откликнулась на несколько вакансий. В ответных письмах просят перейти по ссылке в телеграм пообщаться с ботом. Можно ли переходить по этим ссылкам? Мошенничество это или нет?
Ещё предупреждение везде, что оформление официальное и нужно будет предоставить им информацию, как я понимаю, паспортные данные, ИНН само занятого и и.д. Уважаемые пикабушники, как думаете, быть или не быть? Вообще как в таких ситуациях действовать, чтобы снизить риски?
Любой специалист ценен тем, что умеет правильно и последовательно задавать вопросы.
Такой специалист ценит время коллег, сотрудников и самое главное - свое. Собрав, проанализировав входящий поток информации - уверенно можно подобрать ключ к (практически) любой задаче.
Самый главный вопрос специалиста с опытом, который сначала задается самому себе.
Поговорили про мотивацию, самое время вспомнить аспект, о котором редко задумываются даже опытные управленцы. Про крайне высокую стоимость слов руководителя.
От выбранных слов и сказанных фраз зависит, какой ориентир получат сотрудники и какие решения будут считать правильными.
Руководитель по-умолчанию как маяк, на который смотрит команда. Если долгое время этот маяк указывал одно направление, но в какой‑то момент курс пришлось резко изменить (из‑за новых обстоятельств или изменений на рынке), команда может испытать эффект ледяного душа.
Ведь всё это время люди верили, что действуют правильно. И вдруг оказалось — нет. В психологии это состояние называют когнитивным диссонансом.
Чаще всего люди ориентируются на установки и оценку руководителя, а не цели компании.
Поэтому перед тем, как оценивать результат сотрудника, задумайтесь: вами движет ситуативная эмоция или объективная оценка фактов?
Не менее важный вывод и для сотрудников: без собственного мнения вы можете легко попасть в ловушку. Если вы всё делаете, оперируя логикой «как сказано свыше», то в итоге можете неожиданно оказаться крайним.
Универсальная рекомендация такая — ориентируйтесь на цели компании. Если ваша работа им соответствует, вы сможете уверенно пройти любые повороты.
А вы попадали в подобные ситуации? Как справлялись?
Если вам близка тема управления, в моем телеграм-канале «Лайфхаки управленца» я делюсь опытом и советами, которые накопились за 20 лет работы на руководящих позициях. Можете заглянуть — уверен, что найдете что-то полезное для себя.
Для лиги лени: продукт есть, но есть куда расти. Некоторые вещи вызывают недоумение. Медведь годный.
Годный медведь
Учебник по интиму часть 1. Введение Часть 2. Стоит только нам взять телескоп и посмотреть вооружённым глазом Часть 3. Давайте пробовать поставить Часть 4. Немного душноты Часть 5. Gitflic api Заключение
Учебник по интиму часть 1. Введение
Пришли ко мне в личку, в запрещенной в РФ сети, бывшие коллеги с вопросом, а знаю ли я, а могу ли я посмотреть, и им показать, что такое гитфлик (GitFlic). Я про такое первый раз слышу, потому что за импортозамещением в ИТ в РФ не слежу. Нет смысла следить за переименованиями, типа Debian 10-11-12 – Astra, Samba – ALD, Панголин – PostgreSQL, и так далее.
Тут вот, свой продукт.
Погуглил. На сайте новостей Минцифры – две рекламные статьи, обе от 2021 года: Первая - GitFlic. Российский GitHub и вторая, ответ на нее, «GitFlic: нас обвинили в «распиле». На этом все. Остальное – 3 рекламные статьи, и два треда на лоре «как это работает вообще без техподдержки». И, внезапно, статья от 1с – Инфостарт, Автоматизация процесса разработки с помощью сервиса GitFlic. Пока дописывал статью, нашлась еще одна минцифровая статья «Cборка Java-проектов в GitFlic Kubernetes-агентом»
GitFlic не является форком какого-либо решения. Он написан с нуля и создан без иностранного участия, поэтому не зависит от внешних факторов и сторонних разработок.
В отличие от GitLab и GitHub, которые разработаны на Ruby и Ruby on Rails, GitFlic написан на Java. Это обеспечивает стабильность и производительность даже для крупных проектов.
Это Java то про производительность? Ну ладно
В 2023 году продукт был куплен Астрой
ГК «Астра» продолжает реализацию стартовавшей в 2020 году M&A-стратегии и объявляет о вхождении в контур группы ООО «РеСолют», разработчика GitFlic —сервиса для работы с исходным кодом и его хранения. Сделка проводится в два неразрывных этапа, по завершении которых в конце текущего года ГК «Астра» получит мажоритарную долю 51%. Оставшаяся часть акций будет по-прежнему принадлежать основателям компании: Алексею Синицину, Максиму Козлову, Тимуру Миронову, Денису Рамазанову и Константину Леоновичу. Стратегические договоренности компаний предполагают, что в дальнейшем ГК «Астра» сможет еще увеличить свою долю в разработчике.
Ну был и был, мало ли чего скупила Астра.
Часть 2. Стоит только нам взять телескоп и посмотреть вооружённым глазом
Продукт позиционируется как комбайн с вертикальным взлетом – тут и хранение кода (вместо GitLab Self-Managed), и хранение итогов сборок вместо Maven (Реестр пакетов Maven), Nexus, и так далее. С релиза 3 объявили что «Релиз 3.0.0 отличается удобным интерфейсом, развитой функциональностью и способен стать полноценной заменой зарубежных продуктов GitHub, GitLab, Nexus, Artifactory, Jenkins и т.д.»
Пишут, что теперь работает и с OneScript (это для 1с). Обещают замену не только хранению кода, но и CI\CD, почти как в GitLab Runner или в GitHub Actions. В версии 4.6 пообещали что уже добавили: Проксирование реестра пакетов Deb Проксирование реестра пакетов Helm Прочее - 4.6.0 Что нового Обещают, что к проекту подключилось 100500000000 пользователей, но на этом все. Просто все. Зато в 4.4 отобрали манифесты:
Из стандартных пакетов убраны манифесты для k8s. На смену им пришли Helm Charts
При этом примеров «как это работает» и рассказов, кроме «мы внедрили, интерфейс красивый» - нет. Реклама есть. Сообщества нет. Примеров нет. Чат в телеграмме есть.
У продукта два исполнения – облачное и self-hosted. Облачное ни коллегам, ни мне не интересно, а на self-hosted можно и посмотреть.
Дальше я буду попутно сравнивать с GitLab Community Edition. Не потому, что он какой-то супер, а потому что я его видел, и с ним время от времени сталкиваюсь. У GitFlic Self-Hosted возможностей вроде сильно побольше, но посмотрим.
Все. На самом деле нет, если посмотреть Gitlab CE Self-compiled installation, то там английским по белому написано: In GitLab 18.0 and later, PostgreSQL 16 or later is required.
GitFlic Self-Hosted. Требует Redis и PostgreSQL. Зачем им редис – не понимаю. Но, GitLab Community Edition включает NGINX, Postgres, Redis, так что, есть и есть, как и у GitLab CE
Сама web страница загрузки (их репо) малость странное. Сверху указывается «N дней назад», и только внизу указано 2025-11-06, причем зачем-то этот фрагмент как-бы-защищен (нет) от выделения и копирования.
В реестре контейнеров последний бесплатный дистрибутив - gitflic-server-ce Бесплатный дистрибутив GitFlic Версия latest Опубликован 26 марта 2025 г.
Скачан целых 5 (пять) раз.
Дистрибутивы: Gitlab CE в варианте gitlab-ce_18.3.6-ce.0_arm64.deb. GitLab Community Edition (including NGINX, Postgres, Redis) Package Size 1.31 GB Installed Size 3.55 GB MD5 7244b435f26e74991f02a6525c4d3d26 SHA1 11c154d0bb4df6e9be39af864185d0cdfac7ea9e SHA256 6b3e1ae33d8dd89c7344338fc51f98e39d992b2c87e6b6e0167d91b496390868 SHA512 479be83c2f8eb0247637097e5b1863f2eafe1787ed9e9b843e470eed343e8328799187b5153d723b6c756405e64005fd9b4faa59da471ded412a259643e254cf
Дистрибутивы:gitflic .. все сложно. По ссылке – лежит описание по 4.6.0 По другой ссылке Лежит короткий readme, ссылка на сам файл gitflic-server_onpremise_4.6.0.zip, и ничего кроме. MD5 ? SHA? Не завезли. Ссылку для wget ? Не завезли.
Файл gitflic-server_onpremise_4.6.0.zip размером 780590717 байт. MD5 25C91261305A3EDA778684363D1D9D4F SHA256 67DE3A8EFAD516DB39196E9DA6726E4A5287D51F60950951C62106C22CC4301D
На момент начала написания статьи обновление вышло буквально вчера (статья писалась почти 2 недели, работы привалило, откуда не ждали). Буду смотреть сразу свежее.
Часть следующая, давайте пробовать офлайн
У дебиан опять поменялась страница загрузки, так что, например, отсюда https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/ берем debian-13.2.0-amd64-DVD-1.iso Тестовая VM, 2 vCPU, 4 Гб памяти, 45 Гб жесткий диск, Debian 13. Next-next-без графики-готово-забираем обновления – готово. Правим /etc/network/interfaces и /etc/apt/sources.list Заодно правим /etc/sysctl.conf от ipv6 и /etc/resolv.conf для DNS Убеждаемся в том, что по неведомым причинам /usr/sbin/ так и не прописан в путях по умолчанию, делаем ребут. /usr/sbin/shutdown
Смотрим – получилось меньше 5 Гб всей виртуальной машины. Заливаем туда gitflic-server_onpremise_4.6.0.zip, отключаем сеть на уровне гипервизора и идем читать инструкцию
В инструкции куча слов про создание папок и установку из zip, но ни слова про то, что jar файлы по умолчанию запускать нечем. Между тем, ПО идет как jar - gitflic.jar, размером 444275979, MD5 7ADC17898B22007B71C8C3D305777B42 SHA256 19468BAE05E83ADB6F56792C7BB6C946CE40CFD2F35F47B72BF77CAF879DF7B4
Поэтому, кроме упомянутого в руководстве apt install unzip , нужно сделать и apt install default-jdk. Еще в инструкции по установке везде стоит sudo, его тоже нет в debian по умолчанию. Хотите – ставьте. Дальше хотелось бы делать по инструкции, но так не выйдет. Потому что инструкцию надо было читать с самого начала, раздела «Предварительные условия», а не как я, сразу перейдя к установке приложения.
В предварительных условиях указано: OpenJDK 11 default-jdk на момент написания статьи - openjdk 21.0.9 2025-10-21, OpenJDK Runtime Environment (build 21.0.9+10-Debian-1deb13u1)
Затем, везде в инструкции стоит использование sudo. Его по умолчанию нет в Debian, поэтому apt install sudo
В инструкции указан PostgreSQL 11. Последняя версия, 11.22, вышла два года назад, 2023-11-09. Актуальная версия – 18.1, или хотя бы 17.7. А тут 11.
и дальше пойдем по инструкции из раздела Астры для PostgreSQL 11. Файла мандатного доступа etc/parsec/mswitch.conf у меня нет, и хорошо. В инструкции в пути мелкая опечатка, и в части установки расширений забыли написать \q дальше ставим Redis, ну или keyDB. Я поставил Redis - apt install redis, redis-cli ping отработал.
Остается сразу перевесить порт сервера с 22 на, скажем, 1122. Найду конфиг find / -name "sshd_config" , и поправлю. Потом ребут, и
Перейду к самой установке по инструкции mkdir /tmp/gitflic unzip gitflic_*.zip -d /tmp/gitflic – эта команда не сработает с ошибкой unzip: cannot find or open gitflic_*.zip, gitflic_*.zip.zip or gitflic_*.zip.ZIP.
for d in cicd repo img releases registry; do sudo mkdir -p "/var/gitflic/$d"; done; эта команда .. ну, я от рута делал, так что на sudo ругнется. sudo mkdir -p /opt/gitflic/bin sudo mkdir -p /etc/gitflic sudo mkdir -p /var/log/gitflic sudo cp gitflic.jar /opt/gitflic/bin sudo cp application.properties /etc/gitflic/application.properties sudo mkdir -p /opt/gitflic/cert sudo ssh-keygen -t ed25519 -N "" -q -f /opt/gitflic/cert/key.pem
И так далее. Шаг 13, конечно, тоже не сработает – нужно не useradd, а /usr/sbin/useradd --no-create-home --system --shell /sbin/nologin gitflic
Дальше в инструкции идет раздел «Конфигурация SSH порта». На .. то есть – зачем? Раздел «Конфигурация SSH порта» ссылается на следующий раздел, «Конфигурация и запуск». Это многое объясняет. Если же читать инструкцию с начала, а не с середины, то в разделе «Предварительные условия» написано – зачем:
Для того, чтобы было возможным использовать remote-url вида git@gitflic.ru:gitflic/gitflic.git, необходимо освободить стандартный 22 порт ssh сервера!
Раздел написан корректно, но можно чуть-чуть улучшить. Например, переписав весь список главы «установка под Астру» в раздел «просто установка». Но, можно и не переписывать, продукт куплен Астрой.
Все бы хорошо, но нельзя просто так и сделать только по инструкции. Не работает. Например, сделав systemctl status gitflic-server.service видно, что сервис есть, а веб консоли – нет. Почему? Потому что надо смотреть инструкцию лучше, сервис по умолчанию стартует как [::ffff:127.0.0.1]:8080
В инструкции написано:
После запуска перейдите по адресу, указанному при конфигурировании и проверьте работоспособность сервиса
Но в инструкции нет пункта «адрес конфигурации». Точнее, в самом начале инструкции указано: Перед конфигурацией приложения, ознакомьтесь с назначением параметров на странице Конфигурация application.properties
По пункту 9 инструкции по установке понятно, что параметры лежат в /etc/gitflic/application.properties, и внутри там написано # Дефолтное значение адреса localhost server.address=127.0.0.1 gitflic.base.url=http://localhost:8080 . Заодно и логи указано где хранить, logging.file.name=/var/log/gitflic/server.log
Ну, окей, все понятно, слушаем на локалхосте. Ничего такого. Там же указано: # При необходимости также можно указать порт, на котором будет запущен SSH сервер для работы # SSH транспорта git. Дефолтное значение порта 22 ssh.server.port=2255
Ничего не понятно, но очень интересно.
Ну да ничего. Правим в конфиге IP и делаем systemctl restart gitflic-server.service. Перезапускается пару минут (в ограниченной по ресурсам виртуалке), и появляется WEB консоль. Медведь хороший, мне нравится! Настолько хороший, что я выкинул из черновика картинки Kadabrus. Остается зайти: Стандартный пользователь и пароль Почта - adminuser@admin.local Пароль - qwerty123
Зашло. Работает. И даже работает после перезагрузки.
Итого по установке Медведь выбран удачно. Инструкция достаточна для установки. Есть мелкие недоделки, типа пропущенного в одном месте слеша, или \q для выхода из psql, но ничего критичного. PostgreSQL 11 надо менять на 16, 17 или лучше сразу 18. 11 – устарел. JDK тоже указан старый. В инструкции по LDAP авторизации сделано что-то не очевидное, но сейчас с этим разбираться лень
Часть 4. Немного душноты
С чем у коллег проблемы? Проблемы с тем, что они не разработчики, и им Git не нужен. Зато нужно брать секреты из Vault, и забирать к себе готовые плейбуки, ямл, открытые ключи, скрипты и так далее. И, кстати, контейнеры. Что умеет забирать файлы из онлайна? Если говорить про Linux, то это curl, wget, docker - docker push, далее со всеми остановками вроде Automate Ansible With GitLab и Build enterprise-grade IaC pipelines with GitLab DevSecOps. Если говорить про Windows, то есть Desired State Configuration, но иногда людям хочется интима и единообразия, так что мы получаем invoke-webrequest и Invoke-RestMethod. И то и другое относится к (кажется) System.Net.Sockets, но про это не будем. В Windows есть и wget, но это оболочка для invoke-webrequest, и есть два curl: один как командлет, и отдельный curl как честный curl.exe. Вот с этим всем и надо попробовать, как чего работает.
Начало простое: Отправка любого REST-API метода требует авторизации. Для этого необходимо создать токен доступа и указать его в заголовке запроса в следующей форме .. Создам проект MyNewproject01, в нем ветку master, в нем файл myfile01 с содержанием content01.
Для создания токена доступа через интерфейс необходимо: Перейти в профиль пользователя Перейти в раздел API токены Нажать кнопку Создать
Сказать что инструкция «не очевидная» - это ничего не сказать. Профиль пользователя виден и в левом меню, и в правом верхнем. И токены API генерируются в правом верхнем меню
Вот сюда не надо!
СЮДА НЕ НАДО
Надо вот сюда!
Надо вот сюда!
Токены то есть, но токена «чтобы только читал» там нет. В Gitlab сделано понятно, надо дать read_repository: Grants read-only access to repositories on private projects using Git-over-HTTP or the Repository Files API. read_user (Grants read-only access to your profile through the /user API endpoint, which includes username, public email, and full name. Also grants access to read-only API endpoints under /users. ) read_api (Grants read access to the API, including all groups and projects, the container registry, and the package registry.)
а тут как? Просмотр информации о пользователе – ну, допустим. Просмотр информации о проектах пользователя – окей, Просмотр информации о реестре пакетов Создание пакетов реестра Удаление пакетов реестра
Где простой read_repository_only ? Дам все права сразу, потом разбираться буду.
Замечу, что кроме API токенов и транспортных токенов, в проекте есть еще какие-то токены развертывания, но перечня «есть три типа токенов» в руководстве нет. Или где-то дальше, как транспортные токены.
Впрочем, не важно. сообщение про токен читаемое, в моем случае:
Скопируйте токен. Он показан один раз и при перезагрузке страницы его получить иными способами не получится: af71db42-9683-40b4-b615-d31c9e5f7a16
Что с ними делать?
Для того, чтобы создать REST-API запрос, необходимо обратиться на определенный адрес (endpoint), который должен иметь следующее начало:
api.gitflic.ru для работы с API на gitflic.ru localhost:8080/rest-api для работы с API в self-hosted сборках
Домен и порт при работе с self-hosted решением могут отличаться.
Для взаимодействия с публичным API GitFlic необходимо указать полученный access token в заголовке запроса в следующей форме: Authorization: token <accessToken>
Что мешало написать пример для curl или хоть чего-то?
Делаем пример 01: Invoke-WebRequest -Uri 'http://192.168.21.61:8080/rest-api' -Method 'GET' -Headers $headers01 –Verbose Получим ошибку: Specified value has invalid HTTP Header characters. Parameter name: name
Делаем пример 02: Invoke-WebRequest -Uri 'http://192.168.21.61:8080/rest-api' -Method 'GET' -Headers $headers02 –Verbose Очевидно, тут в токене сознательно сделана ошибка, и результат: The remote server returned an error: (403) Forbidden.
Делаем пример 03 Invoke-WebRequest -Uri 'http://192.168.21.61:8080/rest-api' -Method 'GET' -Headers $headers03 –Verbose Результат: VERBOSE: GET with 0-byte payload Invoke-WebRequest : The remote server returned an error: (404) Not Found.
Ну … ладно. Оно, допустим, работает, но можно же было бы и вернуть «токен ОК, а дальше не знаем». Но ответ (404) Not Found - пугает.
Можно же было сделать пример для запроса «токен ок, запросите чего-то еще». Валидации токена не хватает. Или я не искал и не нашел. А он – есть.
Ответ содержит вполне понятный строчный объект, типа {"disableLdapAuth":false,"disableSamlAuth":false,"disableOidcAuth":false, и так далее}
Уже неплохо. Наверное, его можно даже распарсить в какой-то объект, но это не является темой для статьи
Через curl тоже работает: curl.exe --verbose --header "Authorization:token af71db42-9683-40b4-b615-d31c9e5f7a16" $Ad03 Ключ --verbose, конечно, мне был нужен только для отладки, и в таком виде только для читаемости Так что в windows можно делать $Ret032 = curl.exe --header "Authorization:token af71db42-9683-40b4-b615-d31c9e5f7a16" $Ad03
Ответ несколько непредсказуем. Заголовок – есть, ответ StatusCode: 200 есть, а внутри – ничего нет. Ни массива, ничего. Потому что публичных проектов у меня нет. Хотя бы вернули 200, а не (404) Not Found.
Метод для получения содержимого файла GET /project/{ownerAlias}/{projectAlias}/blob?commitHash={commitHash}&file={fileName} Запрос возвращает содержимое файла, который был изменен в указанном коммите, строкой. Если размер файла больше, чем 15МБ, или же он бинарный/картинка необходимо использовать следующий метод commitHash. Обязательный параметр. Хэш коммита, который хранит необходимое состояние репозитория
И как это понимать? Какой еще хеш коммита? Зачем ? Сравните для Gitlab :
И вот это. Какой еще коммит? Если мне надо не коммит, а всегда latest, то что?
Но, метод работает. Одна проблема, где взять хеш коммита. И вторая, как указать ветку, видимо по хешу. Очень странно. С хешем просто. Его можно получить двумя способами. Первый способ, простой. Нужно зайти в историю коммитов файла в GUI и справа будет 7 значный (почему 7 ?) номер коммита
Второй способ, чуть сложнее. Нужно ткнуть на RAW, откроется длинная ссылка вида http://192.168.21.61:8080/project/adminuser/mynewproject01/blob/raw?file=myfile01&commit=9e12345(длинный хвост) Первые 7 цифр в ID коммита – хеш. Остальное – даже не представляю, UUID какой-то.
--verbose, конечно, мне был нужен только для отладки, и в таком виде только для читаемости
Метод для получения списка файлов GET /project/{ownerAlias}/{projectAlias}/blob/recursive?commitHash={commitHash}&directory={directory}&depth={depth}
Запрос возвращает список файлов с информацией о них, начиная с определенной папки и до определенной глубины. Папки не возвращаются.
Опять commitHash. Опять «Обязательный параметр. Хэш коммита, который хранит необходимое состояние репозитория».
Заключение
Приложение работает, API работает. Документация вызывает ряд вопросов, но их уже без меня пусть бывшие коллеги решают. Получение файла и чего угодно вообще через хеш коммита, а не последней (текущей) версии файла выглядит крайне странно. Как и часть инструкции, где этот хеш коммита упомянут, а где его брать – нет. Не очевидно оформляется токен, где не совсем понятно, как сделать read_repository_only Как это будет работать с докером, ансиблом, и так далее – не проверял, и не хочу. Наверное, как-то работает.
PS. Пока писал статью: оказалось что дело было не в бобине, и коллеги и сами справились. Просто у них опять кое-кто накрутил с сертификатами, проверками, и прочей безопасностью, и не сознавался. Пока писал статью: программа набрала 10000000 очков в рейтинге - GitFlic признана лидером среди российских DevOps-платформ по версии CNews.