Совместный онлайн-редактор Markdown — развертывание CodiMD
Совместный онлайн-редактор Markdown — развертывание CodiMD

Некоторые документы на работе должны заполняться онлайн несколькими людьми. Здесь я рекомендую вам попробовать CodiMD, онлайн-редактор с открытым исходным кодом, который поддерживает синтаксис преобразования. Его первоначальное имя — hackmd. Этот инструмент подходит для ситуаций, когда нескольким людям необходимо сотрудничать для своевременной записи и обмена информацией. Его метод развертывания уже поддерживает развертывание Docker-контейнера, и его можно использовать прямо из коробки!

Предпосылка развертывания

  • Сервер был развёрнутdocker.,компонент docker-compose
  • Облачный сервер запоминает, что брандмауэр открывает порт по умолчанию 3000 (если порт по умолчанию coimd изменен, разрешенный порт брандмауэра меняется на соответствующий порт Вот и все)
  • CodiMDразвертыватьнуждатьсябаза поддержка данных, здесь используется постгресбаза под докер. данных

Развертывание базы данных Postgres

Создать постгрес

Docker извлекает postgres (если у вас уже есть postgres в вашей текущей среде докера, то вам нужно только войти в контейнер для создания соответствующей базы данных от имени пользователя, этот шаг можно пропустить)

Язык кода:javascript
копировать
docker pull postgres
# Настройте учетную запись администратора и запустите контейнер.
docker run -d -p 5432:5432 --name=postgresql -v /home/user/pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=your_password postgres
Postgres создает базу данных и пользователя

Войдите в контейнер postgres

Язык кода:javascript
копировать
docker exec -it postgresql bash
# Сменить роль postgres
su - postgres
# Входитьбаза данных
psql
# Создайте нового пользователя как: codimd И установите пароль. Обратите внимание: если вы хотите изменить пароль здесь, он должен соответствовать значению POSTGRES_PASSWORD в файле docker-compose.yml.
CREATE USER codimd WITH PASSWORD 'change_password';
# Создать новую базу данныхcodimd и предоставьте все разрешения новому пользователю codimd
CREATE DATABASE codimd OWNER codimd;
# Выходная база данных
\q
# Выйти из роли
exit
# покидатьконтейнер
exit
Развертывание Кодимда

Найдите место, где вы хотите создать новую папку, и введите его. Имя файла: docker-compose.yml. Содержимое файла следующее. Просто скопируйте и вставьте:

Язык кода:javascript
копировать
version: "3"
services:
  database:
    image: postgres:11.6-alpine
    environment:
      - POSTGRES_USER=codimd
      - POSTGRES_PASSWORD=change_password
      - POSTGRES_DB=codimd
    volumes:
      - "database-data:/var/lib/postgresql/data"
    restart: always
  codimd:
    image: hackmdio/hackmd:2.4.2
    environment:
      - CMD_DB_URL=postgres://codimd:change_password@database/codimd
      - CMD_USECDN=false
    depends_on:
      - database
    ports:
      - "3000:3000"
    volumes:
      - upload-data:/home/hackmd/app/public/uploads
    restart: always
volumes:
  database-data: {}
  upload-data: {}

Сохраните и выйдите, для запуска выполните команду в текущем каталоге:

Язык кода:javascript
копировать
docker-compose up -d

После успешного запуска посетите: http://you_ip:3000 Вот и все

Адрес проекта

Язык кода:javascript
копировать
https://github.com/hackmdio/codimd

Исходный документ развертывания проекта

Язык кода:javascript
копировать
https://hackmd.io/c/codimd-documentation

Исходный текст развертывания Docker

Using docker-compose to setup CodiMD

The easiest way to spin up CodiMD with docker is using docker-compose, see below docker-compose for example config.

Язык кода:javascript
копировать
version: "3"
services:
  database:
    image: postgres:11.6-alpine
    environment:
      - POSTGRES_USER=codimd
      - POSTGRES_PASSWORD=change_password
      - POSTGRES_DB=codimd
    volumes:
      - "database-data:/var/lib/postgresql/data"
    restart: always
  codimd:
    image: hackmdio/hackmd:2.4.2
    environment:
      - CMD_DB_URL=postgres://codimd:change_password@database/codimd
      - CMD_USECDN=false
    depends_on:
      - database
    ports:
      - "3000:3000"
    volumes:
      - upload-data:/home/hackmd/app/public/uploads
    restart: always
volumes:
  database-data: {}
  upload-data: {}

1.Copy the config above and save as docker-compose.yml 2.Modify your database username and password 3.Run docker-compose up -d 4.Visit http://localhost:3000 in your browser

Язык кода:javascript
копировать
OVER~
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 и детали кода