[Забавный проект Docker] Создайте легкую, быструю и красивую персональную навигационную страницу за 10 минут — Flare
[Забавный проект Docker] Создайте легкую, быструю и красивую персональную навигационную страницу за 10 минут — Flare
17df619d649234415d70a10387c22a2e.png
17df619d649234415d70a10387c22a2e.png

1. Предисловие

Всегда находились друзья, которые хотели, чтобы Гугу рассказал, как использовать Docker для создания страницы навигации.,Гугу рекомендует один сегодняСу ЯнБосс получилFlameВдохновлять,Новая оптимизация на этой основепроектFlare

—— Легкая, быстрая и красивая персональная навигационная страница, подходящая для HomeLab или других сценариев, ориентированных на конфиденциальность.

Основные особенности Flare следующие:

  • Поддерживает развертывание Docker одним щелчком мыши и удобное обслуживание (обновление, миграция, удаление).
  • Нет зависимостей от базы данных
  • Данные приложения полностью открыты и прозрачны и на 100% принадлежат самим пользователям.
  • Поддерживает онлайн-редактирование, встроенные значки Material Design. Более 6 тысяч значков, на данный момент загружено более 10 000 раз.
  • Поддерживает устройства x86 и распространенные ARM (ARM32v6, ARM32v7, ARM64v8).
  • Потребление ресурсов приложения очень низкое (ЦП: < 1% MEM: < 30M Docker Image: < 10M)

1.1 Связанные адреса

Flare чиновник GitHub:https://github.com/soulteary/docker-flare

Flare Лог строительства оригинального автора (обратный прокси ИспользовалTraefik):https://soulteary.com/2022/02/23/building-a-personal-bookmark-navigation-app-from-scratch-flare.html

проектвдохновленный:https://github.com/pawelmalak/flame

2. проектвыставка(копироватьотGitHub)

2.1 Руководство по использованию программы

Чтобы облегчить нам использование, босс создал простую программу-мастер. flare После запуска мы можем получить к нему доступ в любое время. /guide,Получать flare Знакомство с основными функциями интерфейса.

45e948de4ee54d183d9226f9bf602a76.png
45e948de4ee54d183d9226f9bf602a76.png

2.2 Страница онлайн-редактирования программы

Чтобы удовлетворить потребности редактирования в любое время и в любом месте, в программу добавлена ​​страница «Онлайн-редактирование».

8ca44d828a415e3de2f36cc397ceb8be.png
8ca44d828a415e3de2f36cc397ceb8be.png

Адрес страницы инструмента:/editor

2.3 Страница помощи программы

Чтобы уменьшить ненужную нагрузку на адресную память, в программу добавлена ​​«страница помощи», на которой по умолчанию отображаются все страницы инструментов в программе.

a45f8ddaa4f2b7fca190c54bfb3e49d2.png
a45f8ddaa4f2b7fca190c54bfb3e49d2.png

Адрес страницы инструмента:/help

2.4 Значки

Чтобы друзьям было проще использовать Flare, в программу встроены все значки Material Design с сайта Materialdesignicons.com. Вы можете сделать каждую из своих закладок единым стилем и использовать высококачественные векторные значки.

img
img

После запуска Flare используйте браузер для доступа к /icons/, чтобы открыть страницу со списком значков.

Выберите понравившийся значок на странице. После щелчка мышкой «имя значка», которое может использоваться непосредственно программой, будет сохранено в буфере обмена по умолчанию, а затем вставлено в файл конфигурации Flare автоматически обновит файл. значок закладки.

(Имена значков не требуют дефиса и не чувствительны к регистру)

Адрес страницы инструмента:/icons

2.5 Производительность программы

«Быстрота» — главное преимущество Flare, и для его поддержки, естественно, нужны «полные очки».

f0560c57d3bd03eeef10bacecb3cfbeb.png
f0560c57d3bd03eeef10bacecb3cfbeb.png

если Вам интересно, как это достигается?,можете прочитать эту статью:«Рекорд производства Flare: интерфейсная оптимизация производительности приложений и интерфейсная часть»

Выкидывайте ядро ​​прямо сюда docker-compose.yaml файл, знакомый docker Опытные игроки в этой среде могут напрямую скопировать и построить ее.

Flare развертывать:

Язык кода:yaml
копировать
version: '3.6'

services:
  flare:
    image: soulteary/flare
    restart: always
    # По умолчанию параметры добавлять не нужно, если есть особые потребности.
    # читаемый документ https://github.com/soulteary/docker-flare/blob/main/docs/advanced-startup.md
    command: flare
    # Включить режим входа в учетную запись
    command: flare --nologin=0
    environment:
      # Если вы хотите включить режим входа пользователя, вам необходимо сначала его настроить. `nologin` запускать Параметры `0`
      # Если включено `nologin`, не установлено FLARE_USER, пользователь по умолчанию `flare`
      - FLARE_USER=flare
      # Укажите собственный пароль учетной записи, если он не установлен. `FLARE_USER`, пароль будет сгенерирован по умолчанию и отображен в журнале запуска приложения.
      - FLARE_PASS=flare
      # Включить ли «Мастер использования» и получить доступ `/guide`
      - FLARE_GUIDE=1
    ports:
      - 3020:5005
    volumes:
      - ./app:/app

Ниже приводится подробное руководство по сборке, поэтому новички смогут успешно построить его шаг за шагом.

3. Настройте среду

Требования к серверу: рекомендуется 1 ГБ памяти, жесткий диск может быть больше.

4. Создайте видео

4.1 YouTube

YouTube:https://youtu.be/Qsvx3AHZnYw

4.2 Билибили

Билибили [HD-версию можно нажать, чтобы пожаловаться на нее B стоять и смотреть】:<joe-bilibili bvid="BV1So4y1h7LZ"></joe-bilibili>

5. Метод строительства

Поскольку многие друзья уже покупали облегченный сервер приложений Tencent Cloud, Гугу также расскажет о некоторых специальных конфигурациях Tencent Cloud. Если вы не используете облегченный сервер приложений Tencent Cloud, вы можете сразу перейти к разделу 5.1.

Установите систему (облегченный сервер приложений Tencent Cloud)

e59713fba8726d3cb55ae11bca83fe3c.png
e59713fba8726d3cb55ae11bca83fe3c.png

Самая большая особенность облегченного сервера Tencent Cloud заключается в том, что он «легкий». По сравнению с CVM, он больше подходит для начала работы новичкам. Здесь мы выбираем базовый образ Docker, который может сохранить этапы установки Docker позже (если вы захотите). настаивайте на использовании внутреннего сервера, установленный здесь образ Docker также поможет вам настроить внутренние источники изображений, что позволит ускорить доступ к ресурсам образа Docker).

Войдите в систему (облегченный сервер приложений Tencent Cloud)

2722040ee311eb4a9ebf2a4945bf38f4.png
2722040ee311eb4a9ebf2a4945bf38f4.png
c0b5d360053746c4095d592967ee401f.png
c0b5d360053746c4095d592967ee401f.png
e0ba858f021b846ad0abc27acf5008c2.png
e0ba858f021b846ad0abc27acf5008c2.png

5.1 Установите Docker и Nginx Proxy Manager

Вы можете напрямую обратиться к этому контенту:

https://blog.laoda.de/archives/nginxproxymanager

5.2 Создайте каталог установки

Создайте каталог установки:

Язык кода:shell
копировать
sudo -i

mkdir -p /root/data/docker_data/Flare

cd /root/data/docker_data/Flare

Здесь мы устанавливаем его напрямую с помощью докера.

Язык кода:shell
копировать
vim docker-compose.yml

В разделе «Английский метод ввода» нажмите i

Язык кода:yaml
копировать
version: '3.6'

services:
  flare:
    image: soulteary/flare
    restart: always
    # По умолчанию параметры добавлять не нужно, если есть особые потребности.
    # читаемый документ https://github.com/soulteary/docker-flare/blob/main/docs/advanced-startup.md
    command: flare
    # Включить режим входа в учетную запись
    command: flare --nologin=0
    environment:
      # Если вы хотите включить режим входа пользователя, вам необходимо сначала его настроить. `nologin` запускать Параметры `0`
      # Если включено `nologin`, не установлено FLARE_USER, пользователь по умолчанию `flare`
      - FLARE_USER=flare
      # Укажите собственный пароль учетной записи, если он не установлен. `FLARE_USER`, пароль будет сгенерирован по умолчанию и отображен в журнале запуска приложения.
      - FLARE_PASS=flare
      # Включить ли «Мастер использования» и получить доступ `/guide`
      - FLARE_GUIDE=1
    ports:
      - 3020:5005      # Порт 3020 слева можно изменить на неиспользуемый порт на любом сервере.
    volumes:
      - ./app:/app     # Файл сохраняется в папке приложения по текущему пути.

щелкнуть esc,Затем :wq Сохраняем и выходим.

5.3 Включите брандмауэр сервера (не обязательно) и зайдите на веб-страницу.

Некоторые крупные производители имеют в своей серверной части брандмауэр (группу политик безопасности). На данный момент нам нужно открыть порт в брандмауэре (группа политик безопасности). 3020

Например, если вы Tencent Cloud, способ открытия следующий (некоторые поставщики услуг не имеют собственного брандмауэра панели, поэтому этот шаг не обязателен):

<img src="https://img.laoda.de/i/2022/06/30/zlio5h-2.webp" alt="image-20220630215240864" style="zoom:33%;" />

<img src="https://img.laoda.de/i/2022/06/30/10h3dqt-2.webp" alt="image-20220630220546335" style="zoom:33%;" />

Пример на картинке заполнен 5230,Замечание заполнено memos,Здесь мы заполняем 3020,Заполните пример Flare , просто подтвердите (если вы находитесь в docker-compose Изменено в файле 9009,Вам нужно заполнить это здесь 9009,и так далее)

<img src="https://img.laoda.de/i/2022/08/19/o4byqz-2.webp" alt="image-20220819145844555" style="zoom:33%;" />

Проверьте, занят ли порт (начните с 3020 (например), введите:

Язык кода:shell
копировать
lsof -i:3020  #Проверять 3020 Порт занят?,если занято,Переопределить порт

Если ничего не появляется, это означает, что порт не занят и мы можем продолжить следующие операции ~

Если оно появляется:

Язык кода:shell
копировать
-bash: lsof: command not found

бегать:

Язык кода:shell
копировать
apt install lsof  #Установить lsof

Если порт не занят (если занят, измените порт, например, измените его на 8081,Уведомление docker И командную строку, и фаервол надо менять)

наконец:

Язык кода:shell
копировать
cd /root/data/docker_data/Flare    # приходить dockercompose В папке, где находится файл

docker-compose up -d 

Теоретически мы можем войти http://ip:3020 Доступ установлен.

e5d5cbefe3b1beb6dbe4eb2884e70e67.png
e5d5cbefe3b1beb6dbe4eb2884e70e67.png

Уведомление: 1. Не знаю сервера IP,Вы можете напрямую использовать командную строкувходить:curl ip.sb,будет отображаться, когдавпередсервериз IP。 2. Если вы не можете получить доступ, проверьте еще раз, открыт ли соответствующий порт в брандмауэре панели Pagoda и внутреннем брандмауэре поставщика услуг.

Некоторые друзья могут захотеть настроить его и поделиться им с другими. Если они захотят поделиться им с другими позже, IP + порт слишком неэлегантен. Gugu рекомендует вам создать доменное имя, которое легко запомнить и которое выглядит более формально. Это позволит вам использовать https, что сделает веб-страницу более безопасной.

и namesilo выше xyz Доменное имя с суффиксом действует один год. 7 Юани можно выбрасывать каждый год.

Если вы хотите использовать его в течение длительного времени, рекомендуется купить его. com Доменное имя с суффиксом более формально и его можно вводить laodade получить 1 Скидка в долларах США (не знаю, доступна ли она сейчас)

namesilo Поставляется с защитой конфиденциальности,Гугу использовал этот,Цена также относительно низкая среди этих регистраторов.,Ключевым моментом является то, что его компания не похожа на других регистраторов доменных имен.,Никаких трюков!(Это просто какой-то фоновый интерфейсуродливый древний = =)

[Покупка доменного имени] Код скидки Namesilo и руководство по разрешению доменных имен (с рекомендациями и мерами предосторожности при покупке сервера)

Давайте посмотрим вниз!

5.4 Обновление

Язык кода:shell
копировать
cd /root/data/docker_data/Flare

docker-compose down 

cp -r /root/data/docker_data/Flare /root/data/docker_data/Flare.archive  # На всякий случай заранее сделайте резервную копию

docker-compose pull

docker-compose up -d    # пожалуйста, не используйте docker-compose stop остановить контейнер, поскольку для этого требуется дополнительное время на ожидание остановки контейнера; up -d Когда вы напрямую обновляете контейнер, он автоматически останавливается и немедленно перестраивает новый контейнер, поэтому нет необходимости тратить это время.

docker image prune  # prune Команда используется для удаления тех, которые больше не используются. docker объект. Удалить все элементы, которые не были tag Отметьте и изображения, которые не используются контейнерами

намекать:

Язык кода:shell
копировать
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] 

входить y

Приложения, созданные с использованием Docker, очень легко обновлять~

5.5 Удаление Flare

Язык кода:shell
копировать
cd /root/data/docker_data/Flare

docker-compose down

cd ..

rm -rf /root/data/docker_data/Flare  # Полностью удалить данные, сопоставленные с локальными

Может быть удален очень чисто.

6. Обратный прокси

Для доступа к нашему сервису нам нужно использовать доменное имя вместо IP+порта!

6.1 Использование прокси-менеджера Nginx

Добавление поворота прокси Извперед,Убедитесь, что вы завершили разрешение доменного имени,Если вы не знаете как, вы можете посмотреть это:Доменное имя и разрешить его на сервереПокупка доменного имени, разрешение доменного имени Видеоурок

image-20221016140213282
image-20221016140213282

После этого войдите в систему Nginx Proxy Manager(Не знаю, как это смотреть:Установите прокси-менеджер Nginx.Связанные руководства))

Уведомление: Nginx Proxy Менеджер (далее – НПМ) будет использоваться 80443 порт, поэтому эта машина не может его занять (например, изначально у нее был Nginx)

Просто добавьте несколько фотографий:

<img src="https://img.laoda.de/i/2022/05/02/kfes4s\_7.webp" alt="image-20220502123517401" style="zoom: 33%;" />

image-20221016140258381
image-20221016140258381

Обратите внимание на заполнение соответствующего доменное имяIP и порт,Согласно статье,должно быть 3020

Заполните IP:

Если Nginx Proxy Manager и Flare на одном сервере, входить в терминал можно:

Язык кода:shell
копировать
ip addr show docker0

Просмотрите соответствующий внутренний IP-адрес контейнера Docker.

В противном случае заполните напрямую Flare Сервер, где IP Вот и все.

<img src="https://img.laoda.de/i/2022/04/03/h9azjx\_7.webp" alt="image-20220403104353185" style="zoom: 33%;" />

Откройте его еще раз и проверьте следующее:

image-20221016140356324
image-20221016140356324

Затем вы можете использовать доменное имя для установки и доступа к нему.

6.2 Использование панели «Пагода»

Я обнаружил, что многие друзья до сих пор привыкли использовать панель «Пагода», и вот обратная конфигурация панели «Пагода»:

Просто создайте новый сайт, без базы данных, без PHP, просто статический.

Затем откройте следующую конфигурацию и измените конфигурацию Nginx.

image-20220819150345725
image-20220819150345725
image-20220819150542867
image-20220819150542867

Код выглядит следующим образом:

Язык кода:text
копировать
    location / {
      proxy_pass http://127.0.0.1:3020/;       # Будьте осторожны и измените его на тот порт, который вы действительно используете.
      rewrite ^/(.*)$ /$1 break;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade-Insecure-Requests 1;
      proxy_set_header X-Forwarded-Proto https;
    }

Этот метод подходит для 90% изобратный прокси может быть эффективным, затем вы можете использовать доменное имя для установки и доступа к нему.

Некоторые студенты могут спросить, почему бы просто не использовать функцию обратного прокси, которая поставляется с Pagoda.

image-20220819150730128
image-20220819150730128

Это также возможно, но сам Гугу уже сталкивался с ситуацией, когда при наличии нескольких веб-сайтов, которые необходимо отменить, при настройке здесь будет сообщаться об ошибке = =

Поэтому позже я перестал его использовать и просто использовал метод выше для управления им.

7. Руководство по использованию

7.1 Настройка вспышки

Конкретную конфигурацию установки смотрите в видео Гугу.

8. Возникшие текущие проблемы

Страница редактирования работает, но немного неуклюже.

9. Концовка

Желаю всем удачного опыта и не стесняйтесь спрашивать, если у вас есть какие-либо вопросы. GitHub нести Issues,Вы также можете общаться и обсуждать друг с другом в комментариях.

В то же время проект находится в зачаточном состоянии, и студенты, у которых есть возможность внести свой вклад в проект, также могут активно присоединиться. проект Приходите и внесите свой вклад!

наконец,Спасибо автору за его вклад,Давайте воспользуемся таким прекрасным проектом!

Ссылки

Flare чиновник GitHub:https://github.com/soulteary/docker-flare

Flare Лог строительства оригинального автора (обратный прокси ИспользовалTraefik):https://soulteary.com/2022/02/23/building-a-personal-bookmark-navigation-app-from-scratch-flare.html

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода