Ми прагнемо до того, щоб музеї могли керувати своїми даними та публікувати їх спільно. Так вони отримують переваги від спільної роботи - як у царині контрольованих словників, так і в їхній видимості на одному сайті зі спільною функцією пошуку. Тому всі інструменти museum-digital централізовані. У наше завдання входить реалізація розробленого нами програмного забезпечення, а також управління системами, що працюють на ньому.
Хостинг і розробка museum-digital здійснюється з використанням трьох серверів. Один сервер, розташований у Strato, використовується як основний сервер для редагування даних і надання їх широкій публіці. Другий сервер, розміщений у digiS у Берліні, використовується як основний сервер для зберігання зображень і резервного копіювання. Нарешті, третій сервер, також розташований у Strato, використовується для розміщення здебільшого внутрішніх інструментів, таких як Nextcloud і Gitea, а також нашої пошти. Це забезпечує виконання на промислових серверах тільки мінімуму необхідного дорогого програмного забезпечення.
У museum-digital є три типи даних для резервного копіювання: вміст бази даних, медіафайли та файли конфігурації.
Вміст бази даних резервно копіюється раз на день, шифрується GPG і потім синхронізується сервером резервного копіювання. Ми зберігаємо повні, зашифровані дампи за останні 7 днів, доступні для швидкого відновлення в будь-який час (як на основному сервері бази даних, так і на сервері резервного копіювання). Раз на день дампи копіюються в центральну систему резервного копіювання digiS.
Сервер резервного копіювання одночасно використовується як сервер зображень. Для виконання цієї функції він автоматично синхронізує всі носії кожні три-шість годин - вночі в Європі частота синхронізації знижується, оскільки вночі практично не додаються нові файли, які могли б вимагати додаткового використання пропускної здатності та обчислювальних ресурсів. Таким чином, друга копія всіх медіафайлів доступна в будь-який час. Медіафайли також включаються в централізовану систему резервного копіювання digiS раз на день, аналогічно дампам баз даних.
Нарешті, файли конфігурації регулярно синхронізуються в git-репозиторій, який потім синхронізується з нашим екземпляром Gitea і передається членам нашої команди адміністраторів.
Для створення додаткового рівня резервного копіювання, ми щомісяця створюємо миттєву копію збережених даних.
Зараз ми займаємося наданням дедалі більшої частини нашого коду у форматі open source. Орієнтовані на зміст open-source частини, як, наприклад, посібник користувача, доступні та можуть редагуватися через GitHub. При цьому модулі, що використовуються в основних сервісах, розміщені на нашій власній сторінці Gitea.
Наші системи працюють на досить поширеному технологічному стеку: Ubuntu для операційної системи, nginx для веб-сервера, MariaDB для сервера бази даних і PHP - як основна мова програмування для всього серверного коду. Redis і Manticore використовуються відповідно для швидкого сховища ключів і серверів повнотекстового пошуку. Для серверної розробки ми використовуємо PHPUnit для модульного тестування, PHPStan для статичного аналізу коду і PHPBench для бенчмаркінгу заданих функцій.
Деякі сайти, які не потребують будь-якої глибшої серверної логіки, працюють безпосередньо на nginx (архів документів) або генеруються за допомогою генераторів статичних сайтів (Zola у випадку цього сайту, mdbook у випадку довідника).
Де знаходяться сервери museum-digital?
Наші сервери розташовані в Німеччині. Центр досліджень і підвищення кваліфікації в галузі дигіталізації землі Берлін digiS щедро спонсорує й обслуговує один із них. Решта серверів орендуються в Strato.