diff --git a/astro.config.mjs b/astro.config.mjs index 4890b6f..ce036a0 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,4 +1,6 @@ import { defineConfig } from 'astro/config' // https://astro.build/config -export default defineConfig({}) +export default defineConfig({ + site: 'https://comfycamp.space' +}) diff --git a/package-lock.json b/package-lock.json index c445e89..c3870f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.0.1", "dependencies": { "@astrojs/check": "^0.3.0", + "@astrojs/rss": "^3.0.0", "astro": "^3.5.2", "typescript": "^5.2.2" } @@ -128,6 +129,15 @@ "node": ">=18.14.1" } }, + "node_modules/@astrojs/rss": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-3.0.0.tgz", + "integrity": "sha512-PMX8iqByk9gtOrusikten/oF5uHjOCZigL6RuXFBUu+xtdKQxXzfIohJ99V2haA4FJjVDyibDTGzXR81POBMxQ==", + "dependencies": { + "fast-xml-parser": "^4.2.7", + "kleur": "^4.1.5" + } + }, "node_modules/@astrojs/telemetry": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.0.4.tgz", @@ -2118,6 +2128,27 @@ "node": ">=8.6.0" } }, + "node_modules/fast-xml-parser": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz", + "integrity": "sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -5603,6 +5634,11 @@ "node": ">=0.10.0" } }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", diff --git a/package.json b/package.json index 048dc63..8b8e0c8 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ }, "dependencies": { "@astrojs/check": "^0.3.0", + "@astrojs/rss": "^3.0.0", "astro": "^3.5.2", "typescript": "^5.2.2" } diff --git a/public/icons/rss.svg b/public/icons/rss.svg new file mode 100644 index 0000000..1bccea6 --- /dev/null +++ b/public/icons/rss.svg @@ -0,0 +1 @@ + diff --git a/src/components/Footer.astro b/src/components/Footer.astro index daa0336..70238ce 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -1,40 +1,56 @@ diff --git a/src/components/Note.astro b/src/components/Note.astro deleted file mode 100644 index 104518d..0000000 --- a/src/components/Note.astro +++ /dev/null @@ -1,35 +0,0 @@ ---- -interface Props { - date: string - title: string - href: string -} - -const { date, title, href } = Astro.props ---- - -
- - diff --git a/src/components/NoteMetadata.astro b/src/components/NoteMetadata.astro deleted file mode 100644 index 055c79e..0000000 --- a/src/components/NoteMetadata.astro +++ /dev/null @@ -1,25 +0,0 @@ ---- -interface Props { - createdAt: string - updatedAt: string -} - -const { createdAt, updatedAt } = Astro.props ---- - - - - diff --git a/src/content/config.ts b/src/content/config.ts new file mode 100644 index 0000000..c5f2741 --- /dev/null +++ b/src/content/config.ts @@ -0,0 +1,15 @@ +import { z, defineCollection } from 'astro:content' + +const notesCollection = defineCollection({ + type: 'content', + schema: z.object({ + title: z.string(), + description: z.string(), + pubDate: z.date(), + updatedAt: z.date().optional(), + }), +}) + +export const collections = { + 'notes': notesCollection, +} diff --git a/src/content/notes/carefree-mountain.md b/src/content/notes/carefree-mountain.md new file mode 100644 index 0000000..8cd20ac --- /dev/null +++ b/src/content/notes/carefree-mountain.md @@ -0,0 +1,34 @@ +--- +title: "Беспечная Гляденовская гора" +description: "Путешествие до Гляденовской горы." +pubDate: 2023-10-16 +--- + +Гляденовская гора - это красивый лес в Перми, за которым прячется деревянная часовня. +Здесь не будет рассказов про историю горы, ведь я не являюсь ни историком, ни археологом, +оставлю это занятие более компетентным людям. +Я всего лишь хочу показать вам это место от лица обывателя, +и, может быть, это сподвигнет вас отправиться когда-нибудь в небольшое путешествие. + +![Фотография поля с видом на пермский аэропорт](/carefree-mountain/1.webp) + +Гляденовская гора находится недалеко от пермского аэропорта. +Если до него самого добраться не составит большого труда, то дальше придётся идти вдоль дороги, хоть и совсем недолго. +Вскоре вы зайдете в лес, тогда идти станет проще и интереснее. + +Теперь, когда мы наконец-то в лесу, где нет проезжающих мимо машин, можно расслабиться. +Дальнейший путь представляет из себя череду деревянных ступенек. +Спускаться по ним довольно легко, но ещё проще подскользнуться. + +![Деревянные ступеньки в лесу](/carefree-mountain/2.webp) +![Белочка](/carefree-mountain/3.webp) +![Деревянные ступеньки в лесу](/carefree-mountain/4.webp) + +В конце пути нас ожидает деревянная церковь. +Теперь можно неспеша осмотреться вокруг. +В таких местах почти ничего не просиходит, внешнего мира как будто не существует. +Он остался там, за горой, здесь же царит тишина и спокойствие. + +![Деревянная церковь в лесу](/carefree-mountain/5.webp) + +*Удивительное рядом.* diff --git a/src/content/notes/self-hosting.md b/src/content/notes/self-hosting.md new file mode 100644 index 0000000..b0514a1 --- /dev/null +++ b/src/content/notes/self-hosting.md @@ -0,0 +1,119 @@ +--- +title: "Свободные альтернативы популярным сервисам" +description: "Список самых популярных независимых альтернатив коммерческим социальным сетям и сервисам." +pubDate: 2023-08-27 +updatedAt: 2023-10-01 +--- + +Это статья для тех, кто никогда не слышал про альтернативы современным социальным сетям и сервисам. + +Мы стали слишком сильно полагаться на централизованные сервисы, такие как vk, youtube, telegram или twitter. +Если у вас начали появляться претензии, будь то цензура, отсутствие нужных функций или +пренебрежительное отношение к личным данным, я предлагаю вам обратить внимание на альтернативы, +которые вы можете запустить на своем сервере. + +Хотя, строго говоря, иметь свой сервер вовсе не обязательно, +но в таком случае вы должны доверять владельцу сервера, ведь именно он будет хранить ваши данные. +Это не особо касается социальных сетей без личных сообщений, там всё и так публично. +Мессенджеры, поддерживающие шифрование, защищают вас от лишних глаз, можете без опасений выбирать публичный сервер. +А вот хранить файлы у незнакомцев я бы не стал. + +## Социальные сети - Fediverse + +![Скриншот fediverse.party](/selfhosted/fediverse-party.webp) + +Fediverse - это группа из нескольких социальных сетей, представляющие аналоги популярным сервисам. + +| Оригинальный сервис | Альтернативы | +| --- | --- | +| Twitter | [Mastodon](https://joinmastodon.org/), [Misskey](https://misskey-hub.net/en/) и [Pleroma](https://pleroma.social/) | +| Vk, Facebook | [Friendica](https://friendi.ca/) | +| Instagram | [Pixelfed](https://pixelfed.org/) | +| Reddit | [Lemmy](https://join-lemmy.org/) | +| YouTube | [Peertube](https://joinpeertube.org/) | +| Soundcloud | [Funkwhale](https://funkwhale.audio/) | + +Создать свой сервер может любой желающий, и его пользователи смогут общаться с пользователями на других серверах. +Зачастую можно общаться даже с пользователями других платформ. + +Если вы ищете простое место для старта, рекомендую обратить внимание на mastodon. +Выберите сервер, на котором вы хотите зарегистрироваться, +в этом вам может помочь [каталог русскоязычных серверов](https://ru.index.community/communities). + +Вот парочка советов: +* Ознакомтесь с правилами сервера. На разных серверах модераторы могут запрещать разные вещи. +* Не регистрируйтесь на больших серверах. Вы не получите от этого особых плюсов, а лишь усилите централизацию. + +У меня есть свой [сервер mastodon](https://m.comfycamp.space), жду вас в гости! + +## Мессенджеры - Matrix, XMPP + +![Скриншот matirx.org](/selfhosted/matrix.webp) + +В мире децентрализованного общения сейчас популярны 2 протокола: xmpp (ранее jabber) и matrix. +Идея такая же, как и в случае с fediverse: любой желающий может поднять свой сервер, а пользователи разных серверов могут общаться между собой. + +По сравнению с другими платформами, например telegram или whatsapp, +вы получаете end-to-end шифрование на всех устройствах и множество клиентов с открытым исходным кодом, +а для регистрации не нужно указывать номер телефона. + +Какой из них вам понравится больше - сказать тяжело. Попробуйте оба. + +## Облако - Nextcloud + +![Скриншот менеджера файлов в nextcloud](/selfhosted/nextcloud.webp) + +[Nextcloud](https://nextcloud.com/) - это больше, чем просто облако. +Это и хранилище файлов, и календарь, и задачи, и контакты, и ещё много всего. +Своим функционалом nextcloud способен заменить целые экосистемы. + +При желании к nextcloud можно подключить офисный редакторор, например onlyoffice, тогда nextcloud превращается ещё и в альтернативу Google Docs. +Это может быть очень кстати для разных компаний. + +Список контактов, календари и задачи можно синхронизировать между своими устройствами. +Для этого используются обычные протоколы сaldav и carddav. + +## Стриминг - Jellyfin + +![Скриншот jellyfin с открытой страницей фильма](/selfhosted/jellyfin.webp) + +[Jellyin](https://jellyfin.org/) - это ваш личный стриминговый сервис. + +Вы просто указываете путь до вашей медиатеки и получаете возможность смотреть и слушать её онлайн. +Jellyfin поддерживает фильмы, сериалы, музыку, аудиокниги и комиксы. + +Jellyfin может перекодировать файлы на лету, если посчитает, что ваше устройство не поддерживает исходный формат. +Это зачастую необходимо для браузеров, так как они могут воспроизодить только самые простые форматы. +Если вы хотите снизить нагрузку на сервер, можно найти клиенты, позволяющие транслировать видео напрямую в ваш плеер +(см. [jellyfin-mpv-shim](https://github.com/jellyfin/jellyfin-mpv-shim). + +Jellyfin поддерживает DLNA, а это значит, что в пару кликов можно включить любой фильм на телевизоре, который находится в той же сети, что и сервер. +А ещё можно организовывать комнаты для просмотра и синхронизировать воспроизведение на нескольких устройствах, если вы хотите посмотреть +что-нибудь в компании. + +Jellyfin - это не обязательно синоним пиратства. +Вы можете стримить легально приобретенный контент, если у вас есть такое желание. + +## Фото и видео - Photoprism + +![Скриншот photoprism, на котором видно несколько фотографий](/selfhosted/photoprism.webp) + +Многие пользуются сервисами от Apple или Google, чтобы хранить личные фотографии и видео. +Если вам становится некомфортно от мысли, что компании, владеющие рекламными сетями, +имеют доступ к вашим фотографиям, можно обратиться к [Photoprism](https://www.photoprism.app/). + +Photoprism позволяет легко просматривать фото в браузере, редактировать метатеги, +и даже умеет распознавать объекты на фото (хотя, честно говоря, эта функция работает не идеально). +Вы можете создавать альбомы и делиться ими с другими людьми. + +Загружать фото можно через веб-интерфейс, импортировать с директории на вашем сервере или же +загружать их по протоколу webdav с того же nextcloud. + +Photoprism умеет конвертировать фотографии формата raw, чтобы их можно было открыть в браузере. +Также вы без проблем можете загрузить свои видео, они при необходимости будут сконвертированы. + +## Вместо заключения - Awesome Selfhosted + +Один из самых популярных репозиториев на Github: [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted). +Это большой список всевозможных сервисов, которые вы можете запустить на своем сервере. +В этой статье я не покрыл и 10% доступных вариантов. Однако, надеюсь, что я смог хотя бы приоткрыть дверь в эту кроличью нору. diff --git a/src/content/notes/strelka.md b/src/content/notes/strelka.md new file mode 100644 index 0000000..057c402 --- /dev/null +++ b/src/content/notes/strelka.md @@ -0,0 +1,38 @@ +--- +title: "Мыс Стрелка" +description: "Фотографии с путешествия на мыс Стрелка." +pubDate: 2023-11-11 +--- + +*Некоторые вещи стоят того, чтобы встать в 6 утра в воскресенье.* + +## Куда мы едем? + +Мыс Стрелка - это скала, у которой соединяются 2 реки: Кама и Чусовая. +Находится она недалеко от города, добраться до ближайших деревень можно на электричке, +а дальше нужно пару километров пройти пешком. + +Точную дорогу мы заранее не посмотрели и пришли не на скалу, а к её основанию. +Подняться, как оказалось, можно и у самой скалы, в самом тяжёлом месте есть верёвка. + +![Вершина скалы](/strelka/1.jpg) +![Вид с мыса Стрелка](/strelka/2.jpg) +![Вид с мыса Стрелка](/strelka/3.jpg) + +На вершине скалы довольно ветрено, но красиво. +Совсем рядом находятся макушки деревьев, а дальше только вода. + +Спустившись буквально на пару шагов можно укрыться от ветра и отдохнуть. +Если вы оказались здесь осенью, то чай будет очень кстати. + +![Пьем чай на скале](/strelka/4.jpg) + +## Путь обратно + +У нас оставалось несколько часов до электрички, поэтому мы отправились изучать ближайшие деревни. +Вроде бы мы находились совсем недалеко от города, но атмосфера уже другая. + +![Железная дорога в деревне](/strelka/5.jpg) + +Наши похождения закончились довольно быстро, но на станции можно спокойно дождаться электрички. +В итоге получилось короткое, но запоминающееся путешествие. diff --git a/src/env.d.ts b/src/env.d.ts index f964fe0..acef35f 100644 --- a/src/env.d.ts +++ b/src/env.d.ts @@ -1 +1,2 @@ +///- Гляденовская гора - это красивый лес в Перми, за которым прячется деревянная часовня. - Здесь не будет рассказов про историю горы, ведь я не являюсь ни историком, ни археологом, - оставлю это занятие более компетентным людям. - Я всего лишь хочу показать вам это место от лица обывателя, - и, может быть, это сподвигнет вас отправиться когда-нибудь в небольшое путешествие. -
- - -- Гляденовская гора находится недалеко от пермского аэропорта. - Если до него самого добраться не составит большого труда, то дальше придётся идти вдоль дороги, хоть и совсем недолго. - Вскоре вы зайдете в лес, тогда идти станет проще и интереснее. -
- -- Теперь, когда мы наконец-то в лесу, где нет проезжающих мимо машин, можно расслабиться. - Дальнейший путь представляет из себя череду деревянных ступенек. - Спускаться по ним довольно легко, но ещё проще подскользнуться. -
- -
- В конце пути нас ожидает деревянная церковь. - Теперь можно неспеша осмотреться вокруг. - В таких местах почти ничего не просиходит, внешнего мира как будто не существует. - Он остался там, за горой, здесь же царит тишина и спокойствие. -
- - - -Удивительное рядом.
-- Это статья для тех, кто никогда не слышал про альтернативы современным социальным сетям и сервисам. -
- -- Мы стали слишком сильно полагаться на централизованные сервисы, такие как vk, youtube, telegram или twitter. - Если у вас начали появляться претензии, будь то цензура, отсутствие нужных функций или - пренебрежительное отношение к личным данным, я предлагаю вам обратить внимание на альтернативы, - которые вы можете запустить на своем сервере. -
- -- Хотя, строго говоря, иметь свой сервер вовсе не обязательно, - но в таком случае вы должны доверять владельцу сервера, ведь именно он будет хранить ваши данные. - Это не особо касается социальных сетей без личных сообщений, там всё и так публично. - Мессенджеры, поддерживающие шифрование, защищают вас от лишних глаз, можете без опасений выбирать публичный сервер. - А вот хранить файлы у незнакомцев я бы не стал. -
- -Скриншот fediverse.party.
- -- Fediverse - это группа из нескольких социальных сетей, представляющие аналоги популярным сервисам. -
- -Оригинальный сервис | -Альтернативы | -
---|---|
- Mastodon, - misskey и - pleroma - | -|
Vk, facebook | -- Friendica - | -
- Pixelfed - | -|
- Lemmy - | -|
YouTube | -- Peertube - | -
Soundcloud | -- Funkwhale - | -
- Создать свой сервер может любой желающий, и его пользователи смогут общаться с пользователями на других серверах. - Зачастую можно общаться даже с пользователями других платформ. -
- -- Если вы ищете простое место для старта, рекомендую обратить внимание на mastodon. - Выберите сервер, на котором вы хотите зарегистрироваться, - в этом вам может помочь каталог русскоязычных серверов. -
- -- Вот парочка советов: - -
- У меня есть свой сервер mastodon, жду вас в гости! -
- -Скриншот matrix.org.
- -- В мире децентрализованного общения сейчас популярны 2 протокола: xmpp (ранее jabber) и matrix. - Идея такая же, как и в случае с fediverse: любой желающий может поднять свой сервер, а пользователи разных серверов могут общаться между собой. -
- -- По сравнению с другими платформами, например telegram или whatsapp, - вы получаете end-to-end шифрование на всех устройствах и множество клиентов с открытым исходным кодом, - а для регистрации не нужно указывать номер телефона. -
- -- Какой из них вам понравится больше - сказать тяжело. Попробуйте оба. -
- -- Nextcloud - это больше, чем просто облако. - Это и хранилище файлов, и календарь, и задачи, и контакты, и ещё много всего. - Своим функционалом nextcloud способен заменить целые экосистемы. -
- -- При желании к nextcloud можно подключить офисный редакторор, например onlyoffice, тогда nextcloud превращается ещё и в альтернативу Google Docs. - Это может быть очень кстати для разных компаний. -
- -- Список контактов, календари и задачи можно синхронизировать между своими устройствами. - Для этого используются обычные протоколы сaldav и carddav. -
- -- Jellyfin - это ваш личный стриминговый сервис. -
- -- Вы просто указываете путь до вашей медиатеки и получаете возможность смотреть и слушать её онлайн. - Jellyfin поддерживает фильмы, сериалы, музыку, аудиокниги и комиксы. -
- -- Jellyfin может перекодировать файлы на лету, если посчитает, что ваше устройство не поддерживает исходный формат. - Это зачастую необходимо для браузеров, так как они могут воспроизодить только самые простые форматы. - Если вы хотите снизить нагрузку на сервер, можно найти клиенты, позволяющие транслировать видео напрямую в ваш плеер - (см. jellyfin-mpv-shim). -
- -- Jellyfin поддерживает DLNA, а это значит, что в пару кликов можно включить любой фильм на телевизоре, который находится в той же сети, что и сервер. - А ещё можно организовывать комнаты для просмотра и синхронизировать воспроизведение на нескольких устройствах, если вы хотите посмотреть - что-нибудь в компании. -
- -- Jellyfin - это не обязательно синоним пиратства. - Вы можете стримить легально приобретенный контент, если у вас есть такое желание. -
- -- Многие пользуются сервисами от Apple или Google, чтобы хранить личные фотографии и видео. - Если вам становится некомфортно от мысли, что компании, владеющие рекламными сетями, - имеют доступ к вашим фотографиям, можно обратиться к Photoprism. -
- -- Photoprism позволяет легко просматривать фото в браузере, редактировать метатеги, - и даже умеет распознавать объекты на фото (хотя, честно говоря, эта функция работает не идеально). - Вы можете создавать альбомы и делиться ими с другими людьми. -
- -- Загружать фото можно через веб-интерфейс, импортировать с директории на вашем сервере или же - загружать их по протоколу webdav с того же nextcloud. -
- -- Photoprism умеет конвертировать фотографии формата raw, чтобы их можно было открыть в браузере. - Также вы без проблем можете загрузить свои видео, они при необходимости будут сконвертированы. -
- -- Один из самых популярных репозиториев на Github: Awesome Selfhosted. - Это большой список всевозможных сервисов, которые вы можете запустить на своем сервере. - В этой статье я не покрыл и 10% доступных вариантов. Однако, надеюсь, что я смог хотя бы приоткрыть дверь в эту кроличью нору. -
- Некоторые вещи стоят того, чтобы встать в 6 утра в воскресенье. -
- -- Мыс Стрелка - это скала, у которой соединяются 2 реки: Кама и Чусовая. - Находится она недалеко от города, добраться до ближайших деревень можно на электричке, - а дальше нужно пару километров пройти пешком. -
- -- Точную дорогу мы заранее не посмотрели и пришли не на скалу, а к её основанию. - Подняться, как оказалось, можно и у самой скалы, в самом тяжёлом месте есть верёвка. -
- - - -- На вершине скалы довольно ветрено, но красиво. - Совсем рядом находятся макушки деревьев, а дальше только вода. -
- -
- Спустившись буквально на пару шагов можно укрыться от ветра и отдохнуть. - Если вы оказались здесь осенью, то чай будет очень кстати. -
- - -- У нас оставалось несколько часов до электрички, поэтому мы отправились изучать ближайшие деревни. - Вроде бы мы находились совсем недалеко от города, но атмосфера уже другая. -
- - - -- Наши похождения закончились довольно быстро, но на станции можно спокойно дождаться электрички. - В итоге получилось короткое, но запоминающееся путешествие. -
-