Автор протестировал работу PostgreSQL и MySQL поверх файловой системы gocryptfs. Обе СУБД показали низкую надежность из-за частых операций записи и синхронизации, что приводило к сбоям при размонтировании FUSE-слоя.
В качестве альтернативы был выбран SQLite. Тестирование режимов журналирования показало, что режим WAL приводит к повреждению базы данных при принудительном размонтировании. Стабильную работу обеспечил классический режим DELETE.
Для работы приложения выбран однопоточный режим Uvicorn, так как SQLite допускает только одну транзакцию записи одновременно. Это исключает необходимость сложной синхронизации между процессами.
Архитектура решения включает Docker-контейнер и два внешних тома: cipherdir для зашифрованных данных и отдельный том для секретов. Раздельное хранение ключей и данных является обязательным условием безопасности.
Приложение самостоятельно управляет жизненным циклом файловой системы. Расшифрованные данные доступны только во время монтирования. Контейнер спроектирован как stateless-решение, восстанавливаемое при наличии внешних томов и мастер-пароля.






