Auto-sync: 2026-04-22 08:02

This commit is contained in:
2026-04-22 08:02:59 +08:00
parent de096f2f88
commit 143d1fd105
62 changed files with 5232 additions and 1268 deletions

View File

@@ -0,0 +1,286 @@
## 📦 新增 85 篇 (06:01:31)
### 【Jon Law - YouTube】
- [Can the S&P Keep Going Up?](https://www.youtube.com/watch?v=uSZlxIO8CCQ)
Learn more at https://www.themetalsroyaltyco.comIn this video: lots of talk going around about the S&P500... there's quite a strong bear case building...
### 【TEDx Talks - YouTube】
- [I lived in a Mars simulation—heres what I learned | Mackenzie Calle | TEDxTallinn](https://www.youtube.com/watch?v=p2IadviOZf8)
What does it really take to prepare humans for life beyond Earth? In this talk, we are taken inside one of the worlds largest Mars simulation mission...
- [The future of ocean and plastic management | Dr. Abhay B. Fulke | TEDxParamita High School](https://www.youtube.com/watch?v=VC3K_ySiCzs)
The ocean is often called the lungs of our planet, but today, those lungs are choking on plastic. While the scale of marine pollution feels overwhelmi...
- [Why Convenience and Cannabis Don't Always Mix | Robert Welch | TEDxUniversityofMississippi](https://www.youtube.com/watch?v=PIxAQ9gOgMo)
Is that feel-good gummy you picked up at the convenience store safe and effective? Not all cannabis products are alike. Welch believes consumers deser...
- [Beauty From Within: Choosing to Go Flat After Mastectomy | Erica Deligne | TEDxMarshallU](https://www.youtube.com/watch?v=aBRwn_IUnQU)
NOTE FROM TED: The health effects of breast implants remain an ongoing field of study. For more context, see the references below. TEDx events are ind...
- [The emotional side of economics | Aarya Sharma | TEDxUniversiteitVanAmsterdam](https://www.youtube.com/watch?v=ndSQs06U1mY)
What if the economy isnt driven by numbers first, but by people?In this TEDxUniversiteitvanAmsterdam talk, Aarya Sharma explores the deeply human sid...
- [Less School, More Learning | Alexander Szadkowski | TEDxJvL Youth](https://www.youtube.com/watch?v=Ni9jWtJp4hE)
An exploration of the benefits for both students and teachers of amended schedules to achieve shorter school days. Alexander has been a student at Jac...
- [AI and the Loneliness Epidemic | Alexander Lieffering | TEDxJvL Youth](https://www.youtube.com/watch?v=e_FdM5WxkQY)
A heartfelt talk that discusses the use of AI in addressing issues of loneliness and how the human response to that can be shaped. Alexander has been ...
- [What we can learn from duck fossils | Martijn van der Meer | TEDxJvL Youth](https://www.youtube.com/watch?v=7auCWnBoOyU)
The North Sea is home to many species of seabirds: auks, loons and gulls, just to name a few. However, we find far more on the bottom of the sea: gold...
- [Agriculture for Healthy Life | Mr.Mavuram Mallikarjuna Reddy | TEDxParamita High School](https://www.youtube.com/watch?v=5blQaNL1qO4)
In this TEDx talk, Mr. Mallikarjun Reddy shares his inspiring journey of leaving a career in software engineering to become a farmer dedicated to prov...
- [Duty Vs Service | Lakshmi Sloka Durgam | TEDxParamita High School](https://www.youtube.com/watch?v=9Mk2Mi6-mBU)
In her TEDx talk, Shloka explores the vital distinction between Duty and Service, using the Upanishadic story of Satyakama Jabala to illustrate how a ...
### 【Greyson Zhang - YouTube】
- [【這個設定沒開】你每支影片都在流失訂閱(訂閱浮水印教學)](https://www.youtube.com/watch?v=e3AoWlhoOno)
加入最好的創作者成長搞錢社群 👉 https://www.greysonzhang.com/membership免費公開課2026 YouTube 成長藍圖 👉 https://www.greysonzhang.com/2026-yt一對一咨詢 👉 https://calendly.com/gre...
### 【Coursera - YouTube】
- [The Science Behind Everyday Beauty Products](https://www.youtube.com/watch?v=QmpCXlNRbVQ)
Everyday routines are powered by science. This lecture breaks down what defines a cosmetic, how products are formulated, and the science that ensures ...
- [8 Job Search Engines to Land Your Next Role](https://www.youtube.com/watch?v=4FP4Dj6a0fs)
Looking for a smarter way to land your next role? This video breaks down eight of the most popular job search engines, covering how each platform work...
- [The Ancient Origins of Cosmetics](https://www.youtube.com/watch?v=PRCVEBjU8ro)
Discover how cosmetics have shaped human culture for thousands of years—and what ancient beauty rituals reveal about identity, status, and self-expres...
### 【Reuters - YouTube】
- [UnitedHealth beats profit expectations](https://www.youtube.com/watch?v=65wyCz4NeV8)
UnitedHealth raised its annual profit forecast and beat expectations for first-quarter results, sending its shares up more than 10%, as the company to...
- [Sheinbaum says 'stricter checks' needed after pyramid shooting](https://www.youtube.com/watch?v=3Djre3zwsis)
Mexican President Claudia Sheinbaum said the deadly attack at the Pyramids of Teotihuacan near Mexico City was an isolated incident, but that authorit...
- [Trump says he does not want to extend truce with Iran](https://www.youtube.com/watch?v=_6xm3KtQkJ4)
President Trump said that he did not want to extend a rapidly expiring ceasefire in the US-Israeli war on Iran and that the US military was raring to...
- [World Cup fans fume over 'scandalous' transit costs](https://www.youtube.com/watch?v=B_a3sFOkoOM)
Soccer fans expressed their discontent over New Jersey's $150 transit tickets for the World Cup outside a soccer store in Times Square.#worldcup #socc...
- [British royals commemorate the life of Queen Elizabeth II](https://www.youtube.com/watch?v=BO_3f7D2t7c)
British royals held a commemorative reception at Buckingham Palace to celebrate the 100th anniversary of Queen Elizabeth's birth.#queenelizabeth #brit...
- [Hundreds of tourists trapped on Rio hill during police operation](https://www.youtube.com/watch?v=JGfCgxu5YOQ)
Nearly 200 tourists were trapped on Rio's Morro Dois Irmaos during a police operation targeting the Comando Vermelho gang.#News #Reuters #Newsfeed #ri...
- [Indian pigeon trainers keep ancient Mughal tradition alive](https://www.youtube.com/watch?v=380dabBFs54)
In the heart of India's capital, a handful of men are keeping alive the ancient Mughal tradition of pigeon-rearing, training birds to navigate long di...
- [Warsh vows to keep monetary policy independent of politics](https://www.youtube.com/watch?v=oxxyV4Ms9B8)
Federal Reserve chief nominee Kevin Warsh told senators he would keep monetary policy decisions independent of President Trump or political pressure.#...
- [Hong Kong fire victim finds gold wedding ring at destroyed home](https://www.youtube.com/watch?v=x5iS7U3eJAo)
Survivors of Hong Kong's deadliest fire began government-supervised visits to retrieve belongings from destroyed Tai Po homes, with some finding jewel...
- [GRAPHIC WARNING: Mass shooting reignites push to loosen gun laws in war-torn Ukraine](https://www.youtube.com/watch?v=tCQcAI2vONQ)
THIS VIDEO CONTAINS SENSITIVE FOOTAGE THAT MAY DISTURB SOME VIEWERSA supermarket shooting in Kyiv that left seven dead has fueled calls to loosen rest...
### 【BBC News 中文 - YouTube】
- [宏福苑居民災後首度「回家」執拾 :「每一位居民都不甘心」- BBC News 中文](https://www.youtube.com/watch?v=k-Py8aLqtsY)
香港大埔宏福苑七棟受災住宅居民週一4月20日起分批返回受損單位執拾物品。這是自去年11月大火以來居民首次獲准重返家園每戶可停留三小時。重返災場有居民形容心情複雜只盼取回具紀念價值的物品亦有住戶回到寵物生前生活的地方作最後告別。宏福苑大火至今約五個月造成168人死亡、79人受傷火...
- [伊朗議員、前革命衛隊指揮官:德黑蘭「絕不」放棄霍爾木茲海峽控制權 BBC News 中文](https://www.youtube.com/watch?v=7rpPV1y79js)
一名伊朗資深國會議員告訴BBC他們「絕對不會」放棄對霍爾木茲海峽的控制權。BBC國際事務首席記者麗斯・杜塞特Lyse Doucet在德黑蘭專訪曾任伊朗伊斯蘭革命衛隊指揮官的議員易卜拉欣・阿齊茲Ebrahim Azizi他說海峽的控制權是他們「不可剝奪的權利」。他也表示伊朗國會計畫將此寫入...
### 【理想生活实验室】
- [庆祝 20 岁生日的荣威带来了和火山引擎深度合作的“AI 原生汽车”新系列](http://www.toodaylab.com/84006)
4 月 21 日,荣威 20 周年暨 AI 新序列产品发布会在北京举行,发布会以“第一家”为主题,强调了“新家人、新跨越”——这引出了“家越”这个荣威旗下的全新产品系列,这是荣威和字节跳动旗下的火山引擎深度合作的战略成果,它的定位是“全球首个 AI 原生汽车序列”。背景信息:今年是荣威品牌 20 周...
- [第 44 届香港金像奖揭晓,《风林火山》获奖最多,但《再见 UFO》成为黑马](http://www.toodaylab.com/84005)
4 月 19 日晚,第 44 届香港电影金像奖Hong Kong Film Awards颁奖礼在香港文化中心大剧院举行。本届奖项的评选范围是 2025 年 1 月 1 日到 12 月 31 日在香港进行了首轮公开售票放映的香港电影(以及对电影场地、电影时长、播放场次等有要求),而最终只有 47 ...
- [今日消费资讯蕉内在成都带来“躺平猫咖”限时空间、Eight Sleep 正式进入中国市场](http://www.toodaylab.com/84004)
《星球大战:曼达洛人与古古》内地定档 5 月 22 日4 月 20 日,《星球大战:曼达洛人与古古》确认定档 5 月 22 日在内地上映,和北美院线同步。这是今年迪士尼的重磅新片之一(同时古古是首次以大银幕主角登场,之后预计它会成为迪士尼官方主推的 IP 角色之一),它承接了之前电视剧版《曼达洛人》...
### 【阿榮福利味 - 免費軟體下載】
- [Absolute Uninstaller 6.0.1.24 - 軟體移除工具](https://www.azofreeware.com/2007/08/absolute-uninstaller-24.html)
軟體移除工具 - Absolute Uninstaller跟微軟的內建移除功能相比較多了可以批量卸載的功能只要點下「批量卸載」便於清單像目前方出現核取框把要移除的程式全部打勾就可以一次移除所有選取的程式還可以自動搜尋無效的訊息、移除卸載不完全的程式殘留檔案官方表示可以「完全移除」程式...
- [[正版購買] BackUp Maker Pro 8.405 - 可設定排程的自動化檔案備份軟體](https://www.azofreeware.com/2012/07/backup-maker-6407.html)
具備多排程功能的檔案備份工具 - BackUp Maker Pro可以建立多個工作排程設定每隔一段時間、每天、每星期、每月自動執行備份選擇備份瀏覽器書籤、影音檔、Email、檔案或資料夾開機時、關機時、某個 USB 插入時自動執行備份(自動備份 USB 資料支援完整備份、部分備份Par...
- [[正版購買] Fast Duplicate File Finder Professional 7.0.0.1 - 重複檔案比對刪除或搬移軟體](https://www.azofreeware.com/2012/05/fast-duplicate-file-finder-3201.html)
重複檔案搜尋及刪除工具 - Fast Duplicate File Finder Professional可以搜尋電腦或資料夾中重複的檔案自動選取較新older dates或較舊newer dates的檔案進行後續的處理能夠選擇刪除或搬移重複的檔案到另一個資料夾並且保持相同的目錄結構...
- [Firefox Portable 150.0 免安裝中文版 - 火狐瀏覽器](https://www.azofreeware.com/2016/02/firefox-portable.html)
Mozilla Firefox - 風靡全球的火狐瀏覽器,快速、安全、有效率的網頁瀏覽,並且擁有全球最大的外掛開發社群,提供你最多的實用外掛,如果你是網路的重度使用者,你一定會愛上它!(阿榮福利味) 下載連結→ https://www.azofreeware.com/p/firefox.html 官...
- [FolderTimeUpdate 1.75 免安裝中文版 - 還原檔案修改日期](https://www.azofreeware.com/2014/12/foldertimeupdate.html)
還原檔案修改日期 - FolderTimeUpdate使用程式備份檔案再還原到其他硬碟的時候檔案或資料夾原本正確的修改日期不見了嗎只要使用這個軟體就能夠大量快速還原可以掃描整個資料夾底下的所有檔案自動偵測並套用正確的修改日期還可以略過空資料夾、隱藏檔、系統檔只更新根目錄、使用模擬模式...
- [Glary Disk Cleaner 6.0.1.44 中文版 - 免費磁碟清理工具](https://www.azofreeware.com/2019/11/glary-disk-cleaner.html)
免費磁碟清理工具 - Glary Disk Cleaner可以掃描並清除硬碟中的垃圾檔、瀏覽器的快取資料以保護你的個人隱私「忽略列表」中可以設定要排除的檔案以避免被刪除也可以自行勾選要刪除的系統、程式、瀏覽器相關資料。阿榮福利味 下載連結→ https://www.azofreewar...
- [[正版購買] Glary Utilities 6.41.0.45 中文版 - 清理硬碟及修復系統登錄檔](https://www.azofreeware.com/2007/08/glary-utilities-22163.html)
Glary Utilities - 多功能系統清理工具它的功能類似CCleaner可以清理硬碟、修復系統登錄檔還有記憶體管理、啟動項目管理、移除程式等功能比較特別的是它有「右鍵選單管理員」可以幫你把一些沒用的項目給刪除掉這是CCleaner所沒有的罕見功能。阿榮福利味 購買連結(蝦皮購...
- [[正版購買] Handy Backup 8.6.9 - 專業電腦備份軟體 支援資料庫備份軟體](https://www.azofreeware.com/2016/03/handy-backup.html)
專業電腦備份軟體 - Handy Backup電腦或伺服器的自動備份、還原、同步解決方案簡單易用的精靈介面多功能的任務排程能夠備份 Windows 檔案或資料夾、程式資料、Outlook、FTP/FTPS/SFTP 伺服器、HyperV、MSSQL/MySQL/MariaDB/Postgre...
- [K-Lite Mega Codec Pack 19.6.8 - 影片播放軟體](https://www.azofreeware.com/2007/01/k-lite-mega-codec-pack-163.html)
K-Lite Mega Codec Pack 幾乎收集了所有的影音編碼程式並且內建「Media Player Classic - Home Cinema」播放器可以用於播放各種格式的影片以及當成影片轉檔用的編碼工具。阿榮福利味 下載連結→ https://www.azofreeware.c...
- [[正版購買] Light Image Resizer 7.6.2.170 中文版 - 大量修改圖片大小的軟體](https://www.azofreeware.com/2019/11/light-image-resizer.html)
大量修改圖片大小的軟體 - Light Image Resizer舊稱VSO Image Resizer可以開啟圖片或照片然後一次執行變更大小、轉檔為 BMP/JPG/GIF/PNG/TIF/JP2/PDF/PSD/PCX/TGA/WEBP/ICO 格式、加入浮水印或效果、旋轉、最佳化,還...
### 【Engadget is a web magazine with obsessive daily coverage of everything new in gadgets and consumer electronics】
- [Cash App now supports accounts for kids 6-12](https://www.engadget.com/apps/cash-app-now-supports-accounts-for-kids-6-12-210651025.html?src=rss)
Cash App, the banking and payments app run by Block, has added support for parent-managed kids accounts. The new accounts include key benefits from th...
- [YouTube is muting push notifications from channels you don't watch](https://www.engadget.com/entertainment/youtube/youtube-is-muting-push-notifications-from-channels-you-dont-watch-205119228.html?src=rss)
YouTube notifications can get messy fast, particularly if youre subscribed to a lot of different channels. To address that, today the company will be...
- [AI company deletes the 3 million OKCupid photos it used for facial recognition training](https://www.engadget.com/ai/ai-company-deletes-the-3-million-okcupid-photos-it-used-for-facial-recognition-training-195223996.html?src=rss)
When online platforms violate their own privacy policies to sell your photos, have no fear: They just might have to pay an undisclosed settlement fee ...
- [Meta has misled users about scam ads on Facebook and Instagram, lawsuit says](https://www.engadget.com/social-media/meta-has-misled-users-about-scam-ads-on-facebook-and-instagram-lawsuit-says-193220235.html?src=rss)
Meta is facing a new lawsuit over its advertising practices. The nonprofit group Consumer Federation of America (CFA) has filed a proposed class-actio...
- [New York Attorney General sues two prediction markets on illegal gambling allegations](https://www.engadget.com/big-tech/new-york-attorney-general-sues-two-prediction-markets-on-illegal-gambling-allegations-192012225.html?src=rss)
New York is the latest state to take a stand against prediction markets. Attorney General Letitia James has sued Coinbase Financial Markets and Gemini...
- [Florida AG opens criminal investigation into OpenAI and ChatGPT](https://www.engadget.com/ai/florida-ag-opens-criminal-investigation-into-openai-and-chatgpt-190200227.html?src=rss)
Florida Attorney General James Ulthmeier has announced that the state's Office of Statewide Prosecution has opened a criminal investigation into OpenA...
- [ChatGPT Images 2.0 is better at rendering non-Latin text](https://www.engadget.com/ai/chatgpt-images-20-is-better-at-rendering-non-latin-text-190000153.html?src=rss)
A little more than a year after OpenAI gave ChatGPT users the option to create images and designs directly from its chatbot, it's now releasing ChatGP...
- [Netflix's Devil May Cry animated adaptation returns for a second season on May 12](https://www.engadget.com/entertainment/tv-movies/netflixs-devil-may-cry-animated-adaptation-returns-for-a-second-season-on-may-12-184003226.html?src=rss)
Netflix's hit animated adaptation of the video game series Devil May Cry is returning for a second season on May 12. The streamer has released a full ...
- [Framework is building an eGPU kit for its Laptop 16](https://www.engadget.com/computing/laptops/framework-is-building-an-egpu-kit-for-its-laptop-16-181516238.html?src=rss)
Frameworks Laptop 13 Pro may be the star of todays launch, but it is by no means the only product the company is unveiling. Were also seeing some q...
- [Framework launches the Laptop 13 Pro with Intel's new Panther Lake chips](https://www.engadget.com/computing/laptops/framework-launches-the-laptop-13-pro-with-intels-new-panther-lake-chips-181503934.html?src=rss)
Frameworks lineup of modular, repairable laptops has seen the company grow from a niche to the mainstream. Now, the company is launching a pro versio...
### 【小众软件】
- [鹰迅OCR几十种功能集成工具证件、发票、快递单、扫描件一键提取省掉手动录入](https://www.appinn.com/inxunoffice-ocr/)
在日常办公中我们在很多场景下都需要用到文字识别OCR技术例如批量识别身份证照片、图片转文档、处理PDF扫描件、快递单信息提取等。但实际情况是当我们遇到这些需要识别文字的场景时找了一堆工具识别效果非常不准过后还要自己反复手动调整。 先看图: 今天就给大家安利这款私藏的智能文字识别神器——鹰迅...
- [Mozilla 发布开源 AI 客户端 Thunderbolt聊天、搜索、调研、自动化自托管/隐私优先](https://www.appinn.com/thunderbolt/)
还在坚持用户隐私的 Mozilla 刚刚发布了开源 AI 客户端 Thunderbolt提供聊天、搜索、调研、任务等功能。@Appinn 省流:私有部署你自己的 ChatGPT、Claude、DeepSeek、豆包平台也需要自己部署大模型。 Mozilla 发布开源 AI 客户端 Thunde...
- [验证码反了!这次只认机器人](https://www.appinn.com/prove-you-are-a-robot/)
一直以来,点击“我不是机器人”,或者选几张红绿灯、斑马线、汽车、人行横道、摩托车,做完这些气死人的人机验证题目,你就可以继续访问网站、服务。太烦人了! 不过这样没完没了验证的日子终于结束了Browser Use 创建了一个反向验证码,将人类拒之门外,让代理进入。 工作流程 Browser Use...
- [Tim Cook 卸任苹果CEO谈 Apple 的下一步](https://www.appinn.com/community-letter-from-tim/)
苹果 CEO 向社区发布一封公开信将卸任苹果CEO由 John Ternus 接任。 原文链接https://www.apple.com/community-letter-from-tim/ 致 Apple 社区: 在过去十五年里,我几乎每天都是从阅读你们的来信开始新的一天。你们来自世界各地,...
### 【TED Talks Daily】
- [To love is to be brave | Kelly Corrigan (re-release)](http://go.ted.com/kellycorrigan)
Family life often requires extraordinary bravery, from navigating the daily challenges to surviving the unexpected crises. Author and podcaster Kelly ...
### 【Slashdot】
- [Framework Laptop 13 Pro Is a Major Overhaul For the Modular, Upgradeable Laptop](https://hardware.slashdot.org/story/26/04/21/2019256/framework-laptop-13-pro-is-a-major-overhaul-for-the-modular-upgradeable-laptop?utm_source=rss1.0mainlinkanon&utm_medium=feed)
An anonymous reader quotes a report from Ars Technica: Framework has been selling and shipping its modular, repairable, upgradable Laptop 13 for five ...
- [Job Cuts Driven By AI Are Rising On Wall Street](https://news.slashdot.org/story/26/04/21/194240/job-cuts-driven-by-ai-are-rising-on-wall-street?utm_source=rss1.0mainlinkanon&utm_medium=feed)
Firms like Bank of America, Citi, Wells Fargo, and others are reporting strong profits while reducing head count and automating more work. "All of the...
- [Meta To Start Capturing Employee Mouse Movements, Keystrokes For AI Training Data](https://tech.slashdot.org/story/26/04/21/1849217/meta-to-start-capturing-employee-mouse-movements-keystrokes-for-ai-training-data?utm_source=rss1.0mainlinkanon&utm_medium=feed)
Reuters reports that Meta plans to start collecting U.S.-based employees' mouse movements, clicks, keystrokes, and occasional screen snapshots to trai...
- [Google's Internal Politics Leave It Playing Catch-Up On AI Coding](https://developers.slashdot.org/story/26/04/21/1655253/googles-internal-politics-leave-it-playing-catch-up-on-ai-coding?utm_source=rss1.0mainlinkanon&utm_medium=feed)
An anonymous reader quotes a report from Bloomberg: At Google, leaders are anxious about falling behind in the race to offer AI coding tools, especial...
- [Xbox Game Pass Ultimate Gets a Price Cut](https://games.slashdot.org/story/26/04/21/1639222/xbox-game-pass-ultimate-gets-a-price-cut?utm_source=rss1.0mainlinkanon&utm_medium=feed)
Microsoft is cutting the monthly price of Xbox Game Pass Ultimate and PC Game Pass, but the tradeoff is that new Call of Duty releases will no longer ...
- [Global Growth In Solar 'the Largest Ever Observed For Any Source'](https://hardware.slashdot.org/story/26/04/21/1549243/global-growth-in-solar-the-largest-ever-observed-for-any-source?utm_source=rss1.0mainlinkanon&utm_medium=feed)
The IEA says 2025 marked a turning point for global energy, with solar posting the largest growth ever seen for any energy source and helping carbon-f...
- [Maryland Becomes First State To Pass Bill Banning 'Surveillance Pricing'](https://yro.slashdot.org/story/26/04/21/0115210/maryland-becomes-first-state-to-pass-bill-banning-surveillance-pricing?utm_source=rss1.0mainlinkanon&utm_medium=feed)
An anonymous reader quotes a report from Denver7: Maryland is poised to become the first state in the country to ban "surveillance pricing." The pract...
- [Amazon To Invest Up To Another $25 Billion In Anthropic](https://slashdot.org/story/26/04/21/014228/amazon-to-invest-up-to-another-25-billion-in-anthropic?utm_source=rss1.0mainlinkanon&utm_medium=feed)
Amazon is expanding its Anthropic partnership with a deal to invest up to another $25 billion, while Anthropic commits to spending more than $100 bill...
- [iPhone Video Shows 'Earthset' From Space](https://science.slashdot.org/story/26/04/21/0012245/iphone-video-shows-earthset-from-space?utm_source=rss1.0mainlinkanon&utm_medium=feed)
NASA astronaut Reid Wiseman posted an out-of-this-world iPhone video on Sunday, showing Earth disappear behind the Moon at 8x zoom. "I could barely se...
- [PlayStation To Require Age Verification For Messages and Voice Chat](https://games.slashdot.org/story/26/04/20/2357225/playstation-to-require-age-verification-for-messages-and-voice-chat?utm_source=rss1.0mainlinkanon&utm_medium=feed)
A new email from Sony says that PlayStation will require players to verify their age later this year to keep using communication features like message...
### 【AI (artificial intelligence) | The Guardian】
- [Florida to open criminal investigation into OpenAI over ChatGPTs influence on alleged mass shooter](https://www.theguardian.com/us-news/2026/apr/21/florida-openai-chatgpt-investigation)
State attorney general said inquiry will look into whether AI tool offered significant advice to campus shooting suspectSign up for the Breaking New...
- [Four key takeaways from Apples change of leadership](https://www.theguardian.com/global/2026/apr/21/four-key-takeaways-from-apple-change-of-leadership)
Analysts say next boss John Ternus should diversify tech giant away from iPhones and raise its game in AIJohn Ternus takes over from Tim Cook as chief...
- [Ill key your car: ChatGPT can become abusive when fed real-life arguments, study finds](https://www.theguardian.com/technology/2026/apr/21/chatgpt-abusive-language-when-fed-real-life-arguments-study)
Researchers find model starts to mirror tone when exposed to impoliteness sometimes escalating into explicit threatsChatGPT can escalate into abusiv...
- [The social sciences need tools for the 21st century | Letters](https://www.theguardian.com/education/2026/apr/21/the-social-sciences-need-tools-for-the-21st-century)
Readers respond to an editorial on difficulties with replicability of results in social science researchYour editorial on social science research (15 ...
- [Jean-Michel Jarre urges music and film industries to embrace AI](https://www.theguardian.com/music/2026/apr/21/jean-michel-jarre-music-film-industries-embrace-ai)
French musicians comments are in stark contrast to fears expressed by artists such as Elton John and Dua LipaJean-Michel Jarre has attacked the conse...
- [Diplomatic duties for Tim Cook after stepping down as Apple CEO](https://www.theguardian.com/technology/2026/apr/21/tim-cook-apple-techscape)
John Ternus ascends the throne but Cook will stay on to manage tech giants foreign policy as executive chairHello, and welcome to TechScape. Im yo...
- [Uber for nurses: gig-work apps lobby to deregulate healthcare, report finds](https://www.theguardian.com/us-news/2026/apr/21/healthcare-nurses-gig-work-ai-apps)
Growing use of AI tech comes at expense of workers rights, protections and pay, report warnsBillion-dollar tech platforms are aggressively pushing fo...
- [Why are respected film-makers suddenly embracing AI?](https://www.theguardian.com/film/2026/apr/21/ai-film-soderbergh-aronofsky)
From Soderbergh to Aronofsky, esteemed Hollywood directors are starting to find ways to include artificial intelligence in the production of their fil...
- [Palantir manifesto described as ramblings of a supervillain amid UK contract fears](https://www.theguardian.com/technology/2026/apr/21/palantir-manifesto-uk-contract-fears-mps)
Alarm caused by posts of Alex Karp, tech firms CEO, championing US military dominance and of AI weaponsThe US spy tech company Palantir published a m...
- [Mythos: are fears over new AI model panic or PR? podcast](https://www.theguardian.com/science/audio/2026/apr/21/mythos-are-fears-over-new-ai-model-panic-or-pr-podcast)
Earlier this month the AI company Anthropic said it had created a model so powerful that, out of a sense of responsibility, it was not going to releas...
### 【WSJ.com: World News】
- [Chinas Cyberspying Targets Western Defense Industry, Dutch Intel Chief Says](https://www.wsj.com/world/chinas-cyberspying-targets-western-defense-industry-dutch-intel-chief-says-c98a710a)
A military intelligence report warned that Beijing poses a growing threat to Europe alongside Russia and that the two countries increasing cooperatio...
- [Japan Lifts Ban on Arms Exports](https://www.wsj.com/world/asia/japan-lifts-ban-on-arms-exports-b41c7574)
Prime Minister Sanae Takaichi said transferring Japanese defense technology to friendly countries would bolster Japans own security and help prevent ...
- [Rules of Origin Set Up U.S.-China Clash in Asia](https://www.wsj.com/world/china/rules-of-origin-set-up-u-s-china-clash-in-asia-1eea1d01)
Plus, factory owners worry about having to scrap decades-old supplier ties....
- [Iran to Attend Pakistan Peace Talks](https://www.wsj.com/world/middle-east/iran-to-attend-pakistan-peace-talks-2cba73c8)
Trump has warned that if Iran doesnt make a deal it would face strikes that knock out its bridges and power plants....
- [Saudi Arabia and Iraq Are Caught in a Hidden War Within the War](https://www.wsj.com/world/middle-east/saudi-arabia-iraq-conflict-iran-war-0d9dd8d8)
Armed groups backed by Tehran are launching drones at Gulf states. Some of them are ready to strike back....
- [How a Brazilian Prison Gang Became a Global Cocaine Power](https://www.wsj.com/world/americas/brazilian-prison-gang-global-cocaine-1edb4883)
From arms dealing in Boston to pirate attacks in the Amazon, the PCC poses a grave challenge to international efforts to curb organized crime....
- [Seized Iranian-Flagged Ship Was Part of Fleet That Frequented China](https://www.wsj.com/world/middle-east/seized-iranian-flagged-ship-was-part-of-fleet-that-frequented-china-e18b6b70)
The cargo ship seized by U.S. forces in the Gulf of Oman belongs to a subsidiary of a sanctioned Iranian state-owned group....
- [U.A.E. Asks U.S. About a Wartime Financial Lifeline](https://www.wsj.com/world/middle-east/u-a-e-asks-u-s-for-a-wartime-financial-lifeline-3f9ea3a0)
Emirati officials have spoken with Treasury Secretary Scott Bessent about accessing dollars if the Middle East conflict drags on....
- [Trump Says Iran Talks Are On, Sparking Push to Bridge Gaping Divides](https://www.wsj.com/world/middle-east/trump-says-iran-talks-are-on-sparking-push-to-bridge-gaping-divides-dda8105c)
The president warned Iran of further attacks if it fails to agree on a deal to end the war....
- [Removing Irans Enriched Uranium Would Be Difficult—But It Has Been Done Before](https://www.wsj.com/world/middle-east/removing-irans-enriched-uranium-would-be-difficultbut-it-has-been-done-before-d2707a27)
The effort also would involve a political deal on where the nuclear material would go....

40
wiki/concepts/BI平台.md Normal file
View File

@@ -0,0 +1,40 @@
---
title: "BI平台"
type: concept
aliases:
- BI Platform
- Business Intelligence Platform
- 数据分析平台
tags: [bi, data, visualization, analytics]
date: 2026-04-14
---
# BI平台
## Definition
**BI 平台**Business Intelligence Platform是一种软件系统用于从企业数据中提取洞察、支持决策制定。核心功能包括数据连接与整合、SQL 查询与探索、多样化图表可视化、交互式仪表盘构建、数据驱动报警。
## Key Capabilities
1. **多数据源连接**: 支持 SQL 数据库、API、文件导入等多种数据源
2. **SQL 探索**: 内置 SQL 查询编辑器,支持即席分析
3. **图表可视化**: 提供折线图、柱状图、饼图、地理图、热力图等多样化图表
4. **仪表盘构建**: 将多个图表组合为仪表盘,支持筛选和交互
5. **权限管理**: 基于角色的访问控制RBAC
## Wiki 中的相关工具
| 工具 | 类型 | 特点 | 部署方式 |
|------|------|------|----------|
| [[Apache Superset]] | BI 平台 | Apache 基金会项目SQL 优先,图表 Gallery 丰富 | Docker |
| [[Grafana]] | 监控/仪表盘 | 监控数据可视化首选,支持告警 | Docker |
| [[Jellyfin]] | 媒体服务器 | 视频播放管理,非 BI | Docker |
## Key Distinction: BI vs 监控
- **BI 平台**:面向业务分析(销售/财务/运营),强调交互式探索和美观的图表 Gallery
- **监控平台**(如 Grafana面向系统可靠性CPU/内存/服务可用性),强调告警和时序数据
- 两者在仪表盘层面有重叠Superset 可以接入 Prometheus 等监控数据源
## Related Concepts
- [[数据可视化]]
- [[Docker容器化部署]]
- [[Home Server Automation]]

View File

@@ -0,0 +1,68 @@
# DNS托管
> DNS托管通过 Cloudflare 免费托管 ishenwei.online 域名 DNS 解析,提供全球 CDN 和免费 SSL 证书。
## Overview
Cloudflare 是全球知名的 CDN 和 DNS 服务提供商,提供免费的 DNS 托管服务。本方案使用 Cloudflare 托管 ishenwei.online 主域名,通过 A 记录将子域名指向 RackNerd VPS 公网 IP192.227.222.142),配合 Caddy 实现基于域名的反向代理。
## Configuration
|| 记录类型 | 主机名 | 指向 | 说明 |
|---------|---------|-------|------|------|
| A | vps.ishenwei.online | 192.227.222.142 | VPS 直连 |
| A | *.ishenwei.online | 192.227.222.142 | 所有子域名泛解析 |
| A | macmini.ishenwei.online | 192.227.222.142 | Mac Mini |
| A | nas.ishenwei.online | 192.227.222.142 | Synology NAS |
| A | ubuntu1.ishenwei.online | 192.227.222.142 | Ubuntu Server 1 |
| A | ubuntu2.ishenwei.online | 192.227.222.142 | Ubuntu Server 2 |
## Free Features Used
1. **DNS 解析**:全球 200+ 节点,毫秒级解析
2. **免费 SSL 证书**通用加密模式Flexible SSLCaddy 提供服务端证书
3. **CDN 加速**:静态资源全球缓存
4. **DDoS 防护**:基础 DDoS 防护免费
5. **HTTP/2 + HTTP/3**:现代协议支持
## Traffic Flow
```
[用户浏览器]
│ DNS 查询: grafana.ishenwei.online
[Cloudflare DNS]
A 记录 → 192.227.222.142
│ HTTPS 请求
[RackNerd VPS: Caddy]
TLS 终止 + 反向代理
│ FRP 隧道
[内网服务]
```
## vs 阿里云 DNS
- **阿里云 DNS**:收费(按解析量),功能全面,适合国内业务
- **Cloudflare**:免费,功能对个人使用足够,全球节点更多,隐私保护更好
## DNS-01 Challenge (Wildcard Certificate)
申请 *.ishenwei.online 泛域名证书时Let's Encrypt 通过 DNS-01 挑战验证域名所有权:
1. CA 要求在 `_acme-challenge.ishenwei.online` TXT 记录写入特定值
2. Cloudflare API 自动更新该 TXT 记录
3. CA 验证通过后颁发泛域名证书
## Related Concepts
- [[HTTPS自动化证书]] — Caddy 自动申请 Let's Encrypt 证书
- [[反向代理]] — Caddy 基于域名的反向代理
- [[内网穿透]] — FRP 隧道传输
- [[CDN]] — Cloudflare 全球内容分发网络
## Related Entities
- [[Cloudflare]] — DNS 托管服务商
- [[RackNerd]] — VPS 公网 IPDNS A 记录指向)
- [[Caddy]] — 自动 HTTPS + 反向代理
- [[FRP]] — 内网穿透隧道
- [[阿里云 DNS]] — 国内 DNS 替代方案

View File

@@ -42,9 +42,23 @@ services:
## Used By
- [[用docker安装it-tools]]
- [[用docker安装transmission]]
- [[如何删除旧的废弃的docker-container-volume]]
- [[Navidrome]]
- [[Jellyfin]]
- [[RSSHub]]
- [[Portainer]]
## External Mode
Compose 文件中声明 `external: true` 可让 Docker 复用已存在的 Volume 或 Network 而非创建新的,避免重装时的命名冲突警告:
```yaml
volumes:
portainer_data:
external: true
networks:
portainer_network:
external: true
```
## Related Concepts
- [[Docker-Image]]

View File

@@ -0,0 +1,113 @@
---
title: Docker堆栈
type: concept
tags: [docker, compose, orchestration]
date: 2025-12-29
---
# Docker堆栈
## Definition
Docker 堆栈Docker Stack是指通过 Docker Compose 编排的多容器应用,由多个相互依赖的服务组成,共同提供完整功能。在 [[Zipline]] 图床方案中MinIO + PostgreSQL + Zipline 构成一个完整的堆栈。
## Zipline Stack Architecture
```yaml
services:
minio: # S3 兼容存储
image: minio/minio:latest
depends_on: []
postgres: # 元数据库
image: postgres:16
depends_on: []
zipline: # 图床应用
image: ghcr.io/diced/zipline:latest
depends_on:
minio:
condition: service_healthy
postgres:
condition: service_healthy
```
## Service Dependency Patterns
### Pattern 1: Simple depends_on
```yaml
service_a:
depends_on:
- service_b
```
仅确保启动顺序,不等待就绪。
### Pattern 2: Health Check + Condition本方案推荐
```yaml
service_b:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/health"]
interval: 30s
retries: 3
service_a:
depends_on:
service_b:
condition: service_healthy
```
确保依赖服务就绪后才启动,避免竞态条件。
### Pattern 3: wait-for Script
```bash
#!/bin/bash
wait-for-it.sh service:port -- echo "Service is ready"
```
## Key Compose Features Used
| 功能 | 配置 | 说明 |
|------|------|------|
| 健康检查 | `healthcheck` | 自动检测服务状态 |
| 条件依赖 | `condition: service_healthy` | 等待健康检查通过 |
| 资源限制 | `deploy.resources.limits` | 防止单服务耗尽资源 |
| 重启策略 | `restart: unless-stopped` | 异常自动重启 |
| 端口映射 | `ports` | 暴露服务端口 |
| 卷挂载 | `volumes` | 数据持久化 |
## Resource Limits in This Stack
| 服务 | 内存限制 | 说明 |
|------|----------|------|
| MinIO | 1G | S3 存储,缓存友好 |
| PostgreSQL | 512M | 元数据,索引优先 |
| Zipline | 512M | Node.js适中即可 |
## Volume Persistence
| 卷路径 | 内容 | 备份策略 |
|--------|------|----------|
| `/volume1/docker/zipline-stack/minio/minio_data` | 图片文件 | Synology Hyper Backup |
| `/volume1/docker/zipline-stack/zipline/pg_data` | 数据库文件 | **不要直接备份**(见下) |
### Important: Database Volume Warning
> **警告**:不要直接备份 PostgreSQL 数据目录(`/var/lib/postgresql/data`
>
> 热备份运行中的数据库目录会导致数据损坏。应使用 `pg_dump` 逻辑备份。
正确方式:
```bash
# 使用 pg_dump 逻辑备份(热备份,安全)
docker exec zipline_postgres pg_dump -U zipline -d zipline | gzip > backup.sql.gz
```
## Connections
- [[MinIO]] ← part of ← [[Docker堆栈]]
- [[PostgreSQL]] ← part of ← [[Docker堆栈]]
- [[Zipline]] ← part of ← [[Docker堆栈]]
- [[群晖 NAS]] ← hosts ← [[Docker堆栈]]
## Related Concepts
- [[Docker Compose]]
- [[容器资源限制]]
- [[容器重启策略]]
- [[逻辑备份]]

View File

@@ -0,0 +1,143 @@
---
title: "Docker容器生命周期管理"
type: concept
tags: [docker, container, lifecycle, operations]
date: 2026-04-22
---
# Docker容器生命周期管理
## Definition
Docker 容器生命周期管理是指对容器的创建、启动、停止、删除等各阶段进行规范操作的过程,是 Home Server 日常运维的基础技能。
## Lifecycle States
```
created → starting → running → stopping → stopped → removing → removed
↑ ↓
└────────── restarting ←──────┘
```
## Core Commands
### 查看
```bash
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止)
docker ps -a
# 查看特定应用的容器
docker ps -a | grep portainer
# 查看容器详细信息
docker inspect <container_name_or_id>
```
### 启动与停止
```bash
# 停止运行中的容器
docker stop <container_name_or_id>
# 强制停止SIGKILL8秒超时后强制终止
docker kill <container_name_or_id>
# 启动已停止的容器
docker start <container_name_or_id>
# 重启容器stop + start
docker restart <container_name_or_id>
```
### 删除
```bash
# 删除已停止的容器
docker rm <container_name_or_id>
# 强制删除运行中的容器(先停止再删除)
docker rm -f <container_name_or_id>
# 删除所有已停止的容器
docker container prune
# 一条命令停止并删除
docker stop <container_name> && docker rm <container_name>
```
### 完整重建流程(以 Portainer 为例)
```bash
# 1. 停止容器
docker stop portainer
# 2. 删除容器
docker rm portainer
# 3. (可选) 删除数据卷
docker volume ls | grep portainer
docker volume rm portainer_data
# 4. (可选) 删除网络
docker network ls | grep portainer
docker network rm portainer_network
# 5. 重新部署
docker compose up -d
```
## Lifecycle Management Best Practices
### 1. Always Stop Before Remove
删除运行中的容器前应先停止,否则需要使用 `-f` 强制删除。强制删除可能导致数据丢失或不一致状态。
### 2. Check Dependencies
删除容器前检查是否有其他容器依赖它:
```bash
docker inspect <container> --format '{{.HostConfig.Links}}'
```
### 3. Use --filter for Bulk Operations
```bash
# 删除所有已停止的容器
docker container prune
# 删除所有 portainer 相关容器
docker rm $(docker ps -a --filter "name=portainer" -q)
# 删除所有退出的容器
docker rm $(docker ps -a --filter "status=exited" -q)
```
### 4. Label-based Lifecycle
给容器打标签以便批量管理:
```bash
# 创建时打标签
docker run --label "env=production" --label "app=web" nginx
# 按标签查找
docker ps --filter "label=env=production"
```
## Data Persistence
容器删除后,**绑定挂载**bind mount的数据仍然保留但**匿名卷**anonymous volume可能丢失。使用命名卷named volume确保数据持久化
```yaml
volumes:
- portainer_data:/data # 命名卷,删除容器后数据保留
# vs
volumes:
- /data # 匿名卷,不推荐
```
## Related Concepts
- [[Docker卷]] — 容器数据的持久化机制
- [[Docker Network]] — 容器的网络连接生命周期
- [[Docker Compose]] — 多容器应用的声明式生命周期管理
- [[Docker堆栈]] — 多容器协同工作栈的整体生命周期
## Related Entities
- [[Portainer]] — 需要生命周期管理的典型容器应用
- [[Docker]] — 生命周期管理的底层平台
## See Also
- [[如何删除旧的废弃的docker-container-volume]] — Portainer 重装的完整实操记录

View File

@@ -0,0 +1,185 @@
---
title: "Docker警告处理"
type: concept
tags: [docker, troubleshooting, warnings, compose]
date: 2026-04-22
---
# Docker警告处理
## Definition
Docker 在执行 `docker compose up``docker compose down` 时常会产生警告WARNING这些警告通常表示资源命名冲突或配置不一致。虽然不一定导致功能故障但了解其根因有助于正确处理和预防。
## Common Warnings
### WARN 1: Network 已存在但不是当前项目创建
**典型警告信息**
```
WARNING: Found orphan containers ([container_name]) for this project.
WARNING: Network portainer_network declared as external, but it does not exist
```
**根因分析**
- 使用了不同的 compose 文件(或不同的项目目录名)部署过同名应用
- Docker Compose 以**项目目录名**作为网络/卷名前缀:`${PROJECT_NAME}_${network_name}`
- 之前的项目创建了 `portainer_network`,新 compose 声明了同名网络但找不到对应资源
**示例场景**
```
# 目录 ~/portainer-deploy 运行过
docker compose up -d
# → 创建网络 portainer-deploy_portainer_network
# 目录 ~/my-portainer 运行新的 compose
docker compose up -d
# → 尝试创建 my-portainer_portainer_network
# → 与旧项目冲突
```
**解决方案**
**方案 A复用旧资源数据保留**
```yaml
networks:
portainer_network:
external: true
```
Compose 不会创建网络,直接使用已存在的 `portainer_network`
**方案 B删除旧资源干净重建**
```bash
# 1. 查看网络
docker network ls | grep portainer
# 2. 查看是否有容器正在使用
docker network inspect portainer_network --format '{{range .Containers}}{{.Name}} {{end}}'
# 3. 断开仍连接的网络(如果有)
docker network disconnect portainer_network <container>
# 4. 删除网络
docker network rm portainer_network
# 5. 重新 up
docker compose up -d
```
---
### WARN 2: Volume 已存在但属于另一个 Compose 项目
**典型警告信息**
```
WARNING: Volume portainer_data exists but was not created for service 'portainer'.
It will not be used.
```
**根因分析**
- 之前用不同的项目名部署过 Portainer创建了旧卷`portainer_portainer_data`
- 新 compose 声明的卷名(如 `portainer_data`)是不同命名前缀下的卷
- Docker 认为旧卷不是为当前服务创建的,可能不兼容
**解决方案**
**方案 A复用旧卷数据保留**
```yaml
volumes:
portainer_data:
external: true
```
**方案 B删除旧卷数据丢失风险**
```bash
# 1. 查看所有 portainer 相关卷
docker volume ls | grep portainer
# 2. 查看卷详细信息
docker volume inspect portainer_portainer_data
# 3. 删除旧卷(注意:会丢失数据)
docker volume rm portainer_portainer_data
# 4. 重新 up
docker compose up -d
```
**⚠️ 警告**:删除 Volume 会永久丢失数据。删除前确认是否需要保留数据。
---
### WARN 3: Found Orphan Containers
**典型警告信息**
```
WARNING: Found orphan containers ([portainer]) for this project.
```
**根因**compose 文件中删除了某个服务定义,但对应的容器仍存在于 Docker 中。
**解决方案**
```bash
# 方案 A删除孤儿容器
docker rm portainer
# 方案 B撤销 compose 文件修改,恢复服务定义
```
---
## Prevention Best Practices
### 1. 使用固定的项目名
```bash
# 指定项目名,避免目录名作为前缀
docker compose -p my-app up -d
# 或在 .env 文件中固定
COMPOSE_PROJECT_NAME=my-app
```
### 2. 在部署前先清理
```bash
# 干净部署前先停止并删除
docker compose down
docker compose up -d
```
### 3. 统一使用 external: true
对于已存在资源的场景,统一在 compose 中声明 `external: true`
```yaml
volumes:
portainer_data:
external: true
networks:
portainer_network:
external: true
```
### 4. 使用一致的目录名
避免频繁变更 compose 文件所在目录,防止命名前缀混乱。
## Troubleshooting Flowchart
```
出现 WARN 警告
识别警告类型Network / Volume / Container
确认是否需要保留旧资源的数据
├─ 需要保留 → 改用 external: true
└─ 不需要保留 → 删除旧资源后重新 up
```
## Related Concepts
- [[Docker Compose]] — compose 文件中的 external 声明
- [[Docker卷]] — Volume 的生命周期
- [[Docker Network]] — Network 的生命周期
- [[Docker容器生命周期管理]] — 容器的 CRUD 操作
## Related Entities
- [[Portainer]] — 常见产生警告的容器应用
## See Also
- [[如何删除旧的废弃的docker-container-volume]] — 完整实操记录

View File

@@ -0,0 +1,77 @@
# HTTPS自动化证书
> HTTPS自动化证书Caddy 自动申请和管理 Let's Encrypt SSL 证书的机制,无需手动配置证书续期和文件路径。
## Overview
Caddy 是用 Go 语言编写的现代化 Web 服务器,其核心特性之一是**自动 HTTPS**——自动为配置中的域名申请 Let's Encrypt 免费证书,并在到期前自动续期。本方案中 Caddy 运行在 RackNerd VPS 上,为 *.ishenwei.online 的所有子域名提供统一的 HTTPS 访问。
## How It Works
### 申请流程
1. Caddy 监听 80 端口HTTP和 443 端口HTTPS
2. 收到域名请求后,自动向 Let's Encrypt 的 ACME 服务器发起证书申请
3. Let's Encrypt 通过 HTTP-01 或 TLS-ALPN-01 挑战验证域名所有权
4. 验证通过后,证书下载并存储在 Caddy 本地(`~/.caddy`
5. 证书到期前自动续期默认提前30天
### Caddyfile 配置示例
```
*.ishenwei.online {
tls {
dns cloudflare {env.CF_API_TOKEN}
}
reverse_proxy /* localhost:8080
}
```
## vs 传统 Nginx/Apache 方案
|| 特性 | Caddy | Nginx/Apache + Certbot |
|------|------|------|------------------------|
| 证书申请 | 自动 | 需手动 certbot |
| 证书续期 | 自动 | 需配置 cron + certbot renew |
| 证书路径 | 自动管理 | 需手动指定 |
| 配置文件 | 简洁 | 复杂 |
| 性能 | 轻量 | 成熟 |
## Architecture Context
本方案中 Caddy 接收来自公网的 HTTPS 请求后,根据域名将流量反向代理到对应的 FRP remotePort
```
[公网请求]
https://grafana.ishenwei.online
[RackNerd VPS: Caddy]
① 验证证书(自动)
② TLS 解密
③ 反向代理到 localhost:13000
[FRP Server]
隧道传输到内网节点
[Ubuntu Server 1: Grafana]
端口 3000
```
## Key Advantages
1. **零配置证书**:无需手动管理证书文件和续期脚本
2. **自动 HTTP→HTTPS 重定向**Caddy 默认将所有 HTTP 请求升级到 HTTPS
3. **Wildcard 证书**:通过 DNS-01 挑战支持 `*.ishenwei.online` 泛域名证书
4. **现代协议支持**:默认启用 HTTP/2 和 TLS 1.3
## Related Concepts
- [[反向代理]] — Caddy 的核心功能
- [[DNS托管]] — Cloudflare DNS 验证泛域名所有权
- [[内网穿透]] — FRP 隧道传输机制
- [[TLS 1.3]] — 最新 TLS 协议版本
- [[ACME]] — Let's Encrypt 证书自动颁发协议
## Related Entities
- [[Caddy]] — 自动 HTTPS 实现者
- [[RackNerd]] — Caddy 运行环境
- [[Cloudflare]] — DNS 服务提供商,支持 DNS-01 挑战
- [[FRP]] — 内网服务的传输通道

View File

@@ -0,0 +1,63 @@
---
title: "Headless 服务器"
type: concept
tags: [服务器, 无头运行, 远程管理]
---
# Headless 服务器
> Headless 服务器(无头服务器)指不连接本地显示器、键盘、鼠标等外设的服务器,通过网络远程管理和访问。
## 概述
Headless 服务器是 Home Server、家庭实验室和数据中心常见的部署模式。Mac Mini 作为 Home Server 时,即以 Headless 模式运行,依赖 RustDesk/VNC 等远程桌面工具进行交互管理。
## 核心挑战
| 挑战 | macOS 解决方案 | Linux 解决方案 |
|------|---------------|---------------|
| 自动睡眠导致连接中断 | `pmset -a sleep 0` | systemd-logind HandleLidSwitch |
| 无显示器导致锁屏 | `pmset -a displaysleep 0` | 无直接对应 |
| 深度休眠导致无法远程唤醒 | `pmset -a standby 0 hibernatemode 0` | systemctl mask sleep.target |
| 需要远程管理能力 | RustDesk/VNC | SSH/RDP |
## macOS Headless 最佳实践
```bash
# 防止所有睡眠(核心配置)
sudo pmset -a sleep 0 displaysleep 0 standby 0 hibernatemode 0
# 启用网络唤醒
sudo pmset -a womp 1
# 临时保持唤醒
caffeinate -d -i -s
```
## Linux HeadlessUbuntu Server
- [[HandleLidSwitch]] = ignore合盖继续运行
- [[systemd-logind]]:电源管理核心组件
- SSH远程管理的事实标准
## 与传统服务器的对比
| 特性 | 数据中心服务器 | Headless 服务器 |
|------|-------------|---------------|
| 显示器 | 通常有 KVM 切换器 | 无 |
| 物理访问 | 通常托管机房 | Home Office |
| 电源管理 | BMC/IPMI 远程管理 | 操作系统级别配置 |
| 睡眠处理 | 通常禁用 | 必须明确禁用 |
## 相关概念
- [[pmset]] — macOS Headless 电源配置工具
- [[caffeinate]] — macOS 临时防止睡眠
- [[Wake-on-LAN]] — Headless 远程唤醒
- [[HandleLidSwitch]] — Linux Headless 合盖配置
- [[系统睡眠管理]] — 操作系统睡眠机制
## 相关实体
- [[Mac Mini M4]] — 典型的 Home Headless 服务器
- [[Ubuntu Server]] — 另一常见的 Headless 服务器操作系统

View File

@@ -44,3 +44,4 @@ NFSNetwork File System网络备份是指通过 NFS 协议将备份数据
- [[clonezilla对ubuntu-server进行全盘镜像备份]]
- [[ubuntu服务器通过rsync实现日常增量备份]]
- [[如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹]]
- [[rsync]] — Entity 页面

View File

@@ -0,0 +1,96 @@
---
title: S3-兼容对象存储
type: concept
tags: [storage, s3, minio]
date: 2025-12-29
---
# S3-兼容对象存储
## Definition
S3-兼容对象存储是指实现了 Amazon S3 API 的对象存储系统,可以在不修改代码的情况下替换 AWS S3 使用。包括 MinIO、Cloudflare R2、Backblaze B2、SeaweedFS 等。
## Core S3 Concepts
| 概念 | 说明 |
|------|------|
| Bucket | 存储桶,类似顶级文件夹 |
| Object | 对象,文件及其元数据 |
| Key | 对象的唯一标识符(路径) |
| Region | 区域,物理位置 |
| ACL | 访问控制列表 |
| Policy | IAM 策略 |
| Presigned URL | 预签名 URL限时访问 |
## S3 vs Traditional Storage
| 特性 | S3 对象存储 | 传统文件系统 |
|------|-------------|--------------|
| 访问方式 | HTTP API | 文件路径 |
| 扩展性 | 无限扩展 | 受限于单盘/RAID |
| 成本 | 按量计费 | 一次性硬件 |
| 元数据 | 键值对灵活扩展 | 固定属性 |
| 原子性 | 最终一致性 | 强一致性 |
| 版本控制 | 原生支持 | 需额外配置 |
## MinIO Configuration for Zipline
```yaml
environment:
STORAGE_ENGINE: s3
S3_BUCKET: zipline-bucket
S3_ENDPOINT: http://minio:9000
S3_ACCESS_KEY: admin
S3_SECRET_KEY: Abcd_1234
S3_REGION: us-east-1
S3_FORCE_PATH_STYLE: "true" # 重要MinIO 需要此设置
```
关键参数 `S3_FORCE_PATH_STYLE: "true"`
- MinIO 默认使用虚拟主机风格bucket.minio:9000
- 部分应用需要路径风格minio:9000/bucket
- 设置为 true 确保兼容性
## Anonymous Access with mc
```bash
# 设置别名
mc alias set local http://192.168.3.17:9000 admin password
# 创建 bucket
mc mb local/zipline-bucket
# 设置匿名访问权限
mc anonymous set public local/zipline-bucket # 公共读写
mc anonymous set download local/zipline-bucket # 仅下载
# 查看匿名策略
mc anonymous list local/zipline-bucket
```
## Cloud Provider Comparison
| 提供商 | S3 兼容 | 出口流量计费 | 最小存储量 | 特色 |
|--------|----------|--------------|------------|------|
| AWS S3 | 原生 | $0.09/GB | 无 | 功能最全 |
| Cloudflare R2 | 是 | **免费** | 无 | 无出口费 |
| Backblaze B2 | 是 | $0.01/GB | 无 | 性价比高 |
| MinIO | 是 | 0 | 无 | 自托管 |
| SeaweedFS | 是 | 0 | 无 | 大文件优化 |
## Use Cases
1. **备份存储**:低频访问但需高持久性
2. **静态资源**CDN 回源存储
3. **图床/媒体库**:直接 URL 访问
4. **AI 模型权重**:大文件存储
## Connections
- [[MinIO]] ← implements ← [[S3-兼容对象存储]]
- [[Zipline]] ← uses ← [[S3-兼容对象存储]]
- [[图床]] ← backed by ← [[S3-兼容对象存储]]
## Related Concepts
- [[对象存储]]
- [[图床]]
- [[数据一致性]]

View File

@@ -0,0 +1,74 @@
# SOCKS5代理
> SOCKS5本地科学上网代理协议监听 127.0.0.1:10808在 Mac Mini、Ubuntu1、Ubuntu2 上正常运行NAS 上仅本机监听。
## Overview
SOCKS5 代理是一种网络协议,通过 SOCKS 代理服务器转发客户端的网络请求,支持 TCP 和 UDP。本方案中各节点通过 v2rayA 或类似代理客户端在本地启动 SOCKS5 代理服务,供本机应用走科学上网通道。
## Node Status
|| 节点 | IP | 端口 | 状态 | FRP 暴露 |
|------|-----|-----|------|----------|
| Mac Mini M4 | 127.0.0.1 | 10808 | ✅ 正常 | — |
| Ubuntu Server 1 | 127.0.0.1 | 10808 | ✅ 正常 | — |
| Ubuntu Server 2 | 127.0.0.1 | 10808 | ✅ 正常 | — |
| Synology NAS | 127.0.0.1 | 20170 | ❌ 仅本机监听 | 否 |
## Usage Patterns
### 终端命令级ProxyChains
ProxyChains 通过 LD_PRELOAD 劫持 socket 调用,强制任意终端命令走 SOCKS5 代理:
```bash
# /etc/proxychains4.conf
socks5 127.0.0.1 10808
# 使用
proxychains4 curl https://google.com
```
### Git 全局代理
Git 不读取系统环境变量,必须显式配置:
```bash
git config --global http.proxy socks5://127.0.0.1:10808
git config --global https.proxy socks5://127.0.0.1:10808
```
### Docker Daemon 代理
通过 systemd drop-in 文件注入环境变量:
```bash
# /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=socks5://127.0.0.1:10808"
Environment="HTTPS_PROXY=socks5://127.0.0.1:10808"
```
### Docker 容器环境变量
```bash
# 容器内使用 ALL_PROXY 环境变量
docker run -e ALL_PROXY=socks5://172.24.0.1:10808 ...
```
## Key Distinction: socks5 vs socks5h
- **socks5**DNS 解析在本地完成,可能 DNS 污染
- **socks5h**DNS 解析由代理服务器完成,防止本地 DNS 污染
```bash
curl -x socks5h://127.0.0.1:10808 https://google.com
```
## Docker 网络网关 IP
Docker 容器内访问宿主机的 IP 不是 127.0.0.1(那是容器自身),而是 Docker 网络网关 IP
- bridge 网络默认:`172.17.0.1`
- 自定义网络(如 compose 项目):`172.24.0.1`
## Related Concepts
- [[透明代理]] — V2RayA 通过 iptables 劫持系统出站流量
- [[环境变量代理]] — HTTP_PROXY/HTTPS_PROXY/ALL_PROXY 环境变量
- [[Docker Daemon 代理]] — systemd drop-in 方式为 docker pull 配置代理
- [[ProxyChains]] — 终端命令级流量劫持工具
- [[Git 全局代理]] — Git 专用代理配置
## Related Entities
- [[v2rayA]] — NAS 上的 SOCKS5 代理来源端口20170
- [[Mac Mini M4]] — SOCKS5 代理节点之一
- [[Ubuntu Server]] — SOCKS5 代理节点
- [[Synology NAS DS718]] — v2rayA 部署位置(仅本机监听)

View File

@@ -0,0 +1,66 @@
---
title: "Wake-on-LAN"
type: concept
tags: [网络, 远程管理, 电源管理]
---
# Wake-on-LAN
> Wake-on-LANWoL/WOL是一种网络标准允许管理员通过发送特定格式的"魔法包"Magic Packet远程唤醒处于关机或深度睡眠状态的计算机。
## 概述
Wake-on-LAN 通过网卡在系统关闭或深度睡眠时仍保持最低功耗监听,接收特定格式的广播包后触发开机。在 Home Server 场景中,配合 `pmset -a womp 1` 启用后Mac Mini 关机后仍可通过网络被远程唤醒。
## 工作原理
1. **待机状态**:网卡在系统关机后仍保持低功耗,监听网络
2. **Magic Packet**:发送包含目标 MAC 地址的 UDP 数据包(端口 9
3. **触发开机**:网卡收到 Magic Packet 后通过主板信号触发开机
## macOS 配置
```bash
# 启用 Wake-on-LAN
sudo pmset -a womp 1
# 验证状态
pmset -g | grep womp
```
## Linux 配置ethtool
```bash
# 查看网卡是否支持 WoL
ethtool eth0
# 启用 WoL需 sudo
ethtool -s eth0 wol g
# 持久化配置(写入 systemd 或 udev 规则)
```
## Home Server 场景
| 场景 | 说明 |
|------|------|
| [[Mac Mini M4]] | `pmset -a womp 1` 启用,通过 Magic Packet 从关机状态唤醒 |
| Ubuntu Server | `ethtool` 配置,配合 systemd 网络服务实现持久化 |
## Magic Packet 格式
Magic Packet 是 UDP 数据包(通常端口 7 或 9包含
- 6 字节的 `0xFF`
- 随后 16 次重复目标 MAC 地址
发送工具:`wakeonlan`Linux/macOS`wol.exe`Windows、路由器管理界面
## 相关概念
- [[pmset]] — macOS WoL 启用方式
- [[系统睡眠管理]] — 睡眠模式与 WoL 的兼容性
- [[Headless 服务器]] — WoL 的典型应用场景
## 相关实体
- [[Mac Mini M4]] — WoL 的 macOS 配置对象

View File

@@ -0,0 +1,61 @@
---
title: "caffeinate"
type: concept
tags: [macOS, 电源管理, 临时防止睡眠]
---
# caffeinate
> macOS 临时防止系统睡眠的工具,不修改系统持久设置,按 Ctrl+C 停止。
## 概述
`caffeinate` 是 macOS 内置命令,用于在当前会话中临时防止系统进入睡眠状态。与 `pmset` 的永久配置不同,`caffeinate` 是即时生效、即时失效的临时方案,适合需要短期保持唤醒但不想修改系统设置的场景。
## 核心参数
| 参数 | 作用 |
|------|------|
| `-d` | 防止显示器睡眠 |
| `-i` | 防止系统空闲时睡眠 |
| `-s` | 防止系统睡眠(防止 AC Power 断开时进入睡眠) |
| `-u` | 模拟用户活动(防止睡眠) |
| `-t <secs>` | 指定超时秒数后允许睡眠 |
## 常用命令
```bash
# 防止显示器和系统睡眠(常用组合)
caffeinate -d -i -s
# 按 Ctrl+C 停止
```
## 使用场景
1. **临时测试**:验证某操作是否需要系统保持唤醒
2. **一次性任务**:执行大文件传输、备份等不希望被睡眠中断的任务
3. **替代 pmset**:不修改系统电源设置,仅在需要时保持唤醒
4. **与 pmset 对比**pmset 永久配置 vs caffeinate 临时生效
## 与 pmset 的关系
- **pmset**:永久修改系统电源设置,重启后保留
- **caffeinate**:临时阻止睡眠,不修改系统设置,退出后恢复原状态
- 两者可互补使用:先用 pmset 配置合理的系统默认行为,再用 caffeinate 处理临时需求
## Home Server 场景
在 Mac Mini 作为 Home Server 时,`caffeinate` 通常不是首选方案,因为服务器需要长期持续运行,`pmset` 的永久配置更适合。但 `caffeinate` 可用于:
- 调试电源管理配置
- 临时升级/维护期间的保持唤醒
## 相关概念
- [[pmset]] — macOS 电源管理永久配置工具
- [[系统睡眠管理]] — 操作系统电源管理的通用框架
- [[Headless 服务器]] — caffeinate 的目标运行环境
## 相关实体
- [[Mac Mini M4]] — caffeinate 的典型应用平台

View File

@@ -0,0 +1,154 @@
---
title: "external配置"
type: concept
tags: [docker, compose, configuration, volume, network]
date: 2026-04-22
---
# external配置
## Definition
`external: true` 是 Docker Compose 文件中的一种声明式配置,用于告诉 Compose 某个 Volume 或 Network 已经存在,不要尝试创建它,而是直接使用已存在的资源。适用于需要保留数据、不希望 Compose 管理资源生命周期的场景。
## Syntax
### Volume
```yaml
volumes:
portainer_data:
external: true
# 引用时直接使用名称
services:
portainer:
volumes:
- portainer_data:/data
```
### Network网络
```yaml
networks:
portainer_network:
external: true
services:
portainer:
networks:
- portainer_network
```
## Behavior Comparison
| 配置 | Compose up | Compose down |
|------|-----------|-------------|
| `external: false`(默认) | 自动创建资源 | 自动删除资源 |
| `external: true` | **不会创建**,直接使用已存在的 | **不会删除**,保持资源 |
| `external: { name: xxx }` | 使用指定名称的已存在资源 | 不会删除 |
## Common Use Cases
### Case 1: 保留数据重装应用
```yaml
# Portainer 重装时保留 portainer_data 卷
volumes:
portainer_data:
external: true
services:
portainer:
image: portainer/portainer-ce:lts
volumes:
- portainer_data:/data
```
这样即使删除并重建 Portainer 容器,用户账户和配置也不会丢失。
### Case 2: 多个 Compose 共享网络
```yaml
# compose-a.yml
networks:
shared_backend:
external: true
# compose-b.yml同一机器上的另一个项目
networks:
shared_backend:
external: true
```
两个 compose 文件可以连接同一个外部网络,实现跨项目通信。
### Case 3: 预创建的基础设施
运维人员预先创建好 Volume/Network开发者通过 `external: true` 引用:
```bash
# 运维预先创建
docker network create monitoring
docker volume create prometheus_data
# 开发 compose 中声明
networks:
monitoring:
external: true
volumes:
prometheus_data:
external: true
```
## Limitations
### 1. 资源不存在会导致错误
```bash
# 如果 portainer_data 卷不存在compose up 会报错:
# ERROR: Volume portainer_data declared as external, but could not be found
```
**解决**:先确认资源存在,或使用脚本预创建:
```bash
docker volume create portainer_data 2>/dev/null || true
docker compose up -d
```
### 2. 不能控制生命周期
`external: true` 资源不会被 `docker compose down --volumes` 删除。需要手动清理:
```bash
docker volume rm portainer_data
docker network rm portainer_network
```
### 3. Compose 文件中的其他字段无效
```yaml
volumes:
portainer_data:
external: true
driver: local # ❌ 会被忽略
driver_opts: {} # ❌ 会被忽略
```
## External with Custom Name
如果已存在的资源名称与 compose 中声明的名称不同,使用 `external.name` 指定:
```yaml
volumes:
app_data:
external:
name: old_project_data_volume
```
## Best Practices
1. **始终显式声明**:所有 `external` 资源都应在 compose 文件中明确声明,便于维护者理解
2. **文档化**:在 README 中记录哪些资源需要预先创建
3. **命名规范**:使用统一的前缀或命名约定(如 `project_name_resource`
4. **验证脚本**:部署前运行验证脚本确保依赖资源存在
## Related Concepts
- [[Docker Compose]] — external 配置所在的上下文
- [[Docker卷]] — external volume 的目标对象
- [[Docker Network]] — external network 的目标对象
- [[Docker容器生命周期管理]] — external 资源与生命周期管理的关系
- [[Docker警告处理]] — external 配置用于解决警告的典型场景
## Related Entities
- [[Portainer]] — 典型的需要 external 配置保留数据的应用
## See Also
- [[如何删除旧的废弃的docker-container-volume]] — external 配置的实操案例
- [[Docker堆栈]] — 多容器场景下的 external 资源管理

72
wiki/concepts/passkey.md Normal file
View File

@@ -0,0 +1,72 @@
# Passkey
## Aliases
- Passkey
- WebAuthn
- FIDO2
- 无密码认证
- FIDO2/WebAuthn 凭证
## Type
Concept / Authentication Standard
## Description
Passkey 是一种基于 FIDO2/WebAuthn 标准的无密码认证方案,使用公钥加密替代传统密码,提供更高的安全性和用户体验。
## How It Works
### Registration
```
1. 用户在网站上选择"创建 Passkey"
2. 网站生成挑战challenge并发送给浏览器
3. 用户通过设备验证指纹、Face ID、PIN等
4. 设备生成公钥/私钥对,私钥保存在设备安全区域
5. 公钥发送给服务器存储
```
### Authentication
```
1. 用户选择使用 Passkey 登录
2. 服务器发送挑战challenge
3. 用户通过设备验证指纹、Face ID、PIN等
4. 设备使用私钥对挑战签名
5. 服务器用公钥验证签名,完成认证
```
## Key Characteristics
| 特性 | 说明 |
|------|------|
| 无密码 | 不需要记忆密码 |
| 防钓鱼 | 绑定特定域名,无法用于钓鱼网站 |
| 防重放 | 每次使用不同的挑战,无法重放攻击 |
| 跨设备 | 可以同步到云端iCloud Keychain、Google Password Manager |
| 标准 | FIDO2 / W3C WebAuthn |
## Passkey vs Traditional 2FA
| 对比项 | Passkey | TOTP |
|--------|---------|------|
| 用户体验 | 更便捷(生物识别) | 需要手动输入6位码 |
| 安全性 | 更高(公钥加密) | 中等(共享密钥) |
| 离线支持 | 依赖设备 | 支持 |
| 跨设备同步 | 依赖平台生态 | 通过 Secret 迁移 |
| 普及度 | 正在增长 | 广泛使用 |
## Passkey Support in Password Managers
### Bitwarden (Official)
- Passkey 功能需要**付费会员**
### NodeWarden
- 原生支持 Passkey**免费**提供
- 完全兼容 Bitwarden 官方客户端
## Related Concepts
- [[Multi-factor-Authentication]] — Passkey 可作为 MFA 的第一因素
- [[TOTP]] — 传统双因素认证方案
- [[Self-Hosted Password Manager]] — 自托管密码管理器需要支持 Passkey
## Source
- [[nodewarden-把-bitwarden-搬上-cloudflare-workers-彻底告别服务器]]

74
wiki/concepts/pmset.md Normal file
View File

@@ -0,0 +1,74 @@
---
title: "pmset"
type: concept
tags: [macOS, 电源管理, 系统管理]
---
# pmset
> macOS 系统电源管理命令行工具,用于查询和修改 macOS 的电源设置sleep/displaysleep/standby/hibernatemode/womp
## 概述
`pmset` 是 macOS 内置的电源管理工具,可查看和配置系统睡眠、显示器睡眠、待机、休眠等行为。在 Mac Mini 作为 Home Server无显示器运行时正确的 `pmset` 配置是确保 7×24 持续可访问的关键。
## 核心参数
### 查询命令
| 命令 | 作用 |
|------|------|
| `pmset -g` | 显示当前所有电源设置 |
| `pmset -g sleep` | 显示睡眠相关设置 |
| `pmset -g displaysleep` | 显示显示器睡眠设置 |
### 设置命令(永久生效)
| 命令 | 作用 |
|------|------|
| `pmset -a sleep 0` | 禁止系统睡眠 |
| `pmset -a displaysleep 0` | 禁止显示器关闭 |
| `pmset -a standby 0` | 禁止待机模式 |
| `pmset -a hibernatemode 0` | 禁止休眠(内存保存到磁盘) |
| `pmset -a womp 1` | 启用网络唤醒WOL |
### 参数作用域
| 参数 | 含义 |
|------|------|
| `-a` | 应用于所有电源模式(电池 + 电源适配器) |
| `-b` | 仅电池模式 |
| `-c` | 仅电源适配器模式 |
## Home Server 最佳实践
将以下命令写入启动脚本或通过 MDM 配置:
```bash
sudo pmset -a sleep 0
sudo pmset -a displaysleep 0
sudo pmset -a standby 0
sudo pmset -a hibernatemode 0
sudo pmset -a womp 1
```
## 与 Linux 对应关系
| macOS (pmset) | Linux (systemd-logind) |
|---|---|
| `sleep 0` | `HandleLidSwitch=ignore` |
| `displaysleep 0` | 无直接对应Linux 无显示器概念) |
| `standby 0` | `AllowSuspend=no` |
| `hibernatemode 0` | `HibernateMode=off` |
| `womp 1` | 无直接对应(需 ethtool 配置 WoL |
## 相关概念
- [[caffeinate]] — 临时防止睡眠的工具,不修改系统设置
- [[Wake-on-LAN]] — 网络唤醒,与 `womp` 参数相关
- [[系统睡眠管理]] — 操作系统电源管理的通用概念
- [[Headless 服务器]] — 无显示器的服务器pmset 配置的目标场景
## 相关实体
- [[Mac Mini M4]] — pmset 的典型应用平台

View File

@@ -0,0 +1,74 @@
# ProxyChains
## Aliases
- proxychains
- proxychains4
- proxychains-ng
## Definition
ProxyChains 是一个基于 LD_PRELOAD 机制的终端代理劫持工具通过预先加载preload一个共享库来拦截动态链接程序如 curl、wget、git的 socket 系统调用,将网络流量重定向到配置的代理服务器。
## Type
[[概念]]
## Core Mechanism
### LD_PRELOAD 劫持原理
ProxyChains 在运行时通过 `LD_PRELOAD` 环境变量将自己编译的共享库(`libproxychains4.so`)注入到目标程序的进程空间。当目标程序调用 `connect()` 等 socket 函数时,实际调用的是 ProxyChains 提供的包装函数,该函数将连接重定向到配置文件中指定的代理服务器。
### 优势
- **无需源码修改**:任何使用动态链接库的程序均可通过前置 proxychains4 执行而自动走代理
- **透明性**:目标程序无需感知代理的存在
- **灵活性**:支持 socks4 / socks5 / http 多种代理类型
## Configuration
### ProxyChains 配置文件
```bash
sudo nano /etc/proxychains4.conf
```
### ProxyList 配置格式
```ini
[ProxyList]
# 格式: 类型 IP 端口
socks5 127.0.0.1 10808
```
### 使用方式
```bash
# 任何命令前加 proxychains4 前缀即可走代理
proxychains4 curl https://www.google.com
proxychains4 wget https://github.com/example/repo
proxychains4 git clone https://github.com/...
proxychains4 apt-get update
```
## Limitations
- **仅支持动态链接程序**:静态编译的程序(如 alpine 容器中的命令)无法被劫持
- **不支持 UDP**ProxyChains 4.x 主要处理 TCP 连接
- **不支持链式代理**(新版可配置但复杂):建议直接使用单一代理
- **不支持 ICMP**ping 命令无法通过 ProxyChains 走代理
- **DNS 行为**:取决于配置中的 `proxy_dns` 设置socks5h 模式下 DNS 由代理服务器解析
## Related Concepts
- [[SOCKS5 协议]]ProxyChains 最常使用的代理协议
- [[SOCKS5h 代理]]DNS 由代理服务器解析的 SOCKS5 变体,推荐配合 ProxyChains 使用
- [[LD_PRELOAD]]Linux 动态链接库预加载机制ProxyChains 的底层技术基础
- [[环境变量代理]]另一种让程序走代理的方式HTTP_PROXY/HTTPS_PROXY与 ProxyChains 互补
- [[Git 全局代理]]Git 不读取环境变量代理,需要通过 `git config` 显式配置
## Related Entities
- [[v2rayN]]ProxyChains 常见的代理来源(提供 10808 SOCKS5 端口)
- [[代理协议]]ProxyChains 支持 socks4 / socks5 / http 代理协议
## Related Sources
- [[ubuntu-server科学上网]]ProxyChains 的完整配置流程
## Summary
ProxyChains 是 Ubuntu Server 终端场景下"让任意命令走代理"的最灵活方案,通过 LD_PRELOAD 劫持 socket 调用,无需目标程序支持代理。相比 Git 全局代理配置和 Docker Daemon 代理配置ProxyChains 适用范围最广,但仅限于动态链接程序和 TCP 连接。

View File

@@ -0,0 +1,85 @@
# Self-Hosted Password Manager
## Aliases
- Self-Hosted Password Manager
- 自托管密码管理器
- 私有密码管理器
- 自建密码服务
## Type
Concept / Architecture Pattern
## Description
自托管密码管理器是指用户在自己的基础设施上部署和运行密码管理服务,而非使用第三方云服务,所有数据存储在用户可控的服务器或平台中。
## Deployment Architectures
### Traditional Self-Hosting
```
用户设备 → 自托管服务器 (VPS/Dedicated) → 数据库
```
- 需要维护服务器OS 更新、安全补丁)
- 需要管理数据库备份
- 示例Bitwarden 自托管、Vaultwarden
### Serverless Self-Hosting
```
用户设备 → 云函数/边缘计算 (Cloudflare Workers) → 云数据库 (D1/R2)
```
- 无需维护服务器
- 平台负责底层运维
- 示例NodeWarden
### Local-Only
```
用户设备 → 本地数据库
```
- 完全离线,不同步
- 示例KeePass
## Comparison Matrix
| 方案 | 服务器 | 数据控制 | 维护成本 | 跨设备同步 | 成本 |
|------|--------|----------|----------|------------|------|
| 官方云服务 | 厂商 | 厂商 | 无 | ✅ | 订阅制 |
| Bitwarden 自托管 | 用户 | 用户 | 高 | ✅ | 服务器成本 |
| NodeWarden | 无 | 用户 | 低 | ✅ | 接近免费 |
| KeePass | 无 | 用户 | 无 | 手动 | 免费 |
## Key Considerations
### Security
- 数据加密(服务端加密、传输加密)
- 访问控制强密码、2FA
- 审计日志
### Privacy
- 数据主权(谁控制服务器)
- 合规要求GDPR、HIPAA 等)
- 数据存储位置
### Reliability
- 备份策略
- 灾难恢复
- 可用性 SLA
### Cost
- 服务器/云资源成本
- 域名费用
- 维护人力成本
## Related Concepts
- [[TOTP]] — 双因素认证,通常与密码管理器配合使用
- [[Passkey]] — 新一代无密码认证标准
- [[Serverless Computing]] — NodeWarden 使用的架构范式
- [[Edge Computing]] — 边缘计算平台Cloudflare Workers
## Popular Self-Hosted Options
- [[Bitwarden]] — 官方自托管服务器Docker
- [[NodeWarden]] — Cloudflare Workers 版本([[Cloudflare Workers]]
- [[Vaultwarden]] — Bitwarden API 兼容实现,轻量级 Rust 版本
## Source
- [[nodewarden-把-bitwarden-搬上-cloudflare-workers-彻底告别服务器]]

62
wiki/concepts/totp.md Normal file
View File

@@ -0,0 +1,62 @@
# TOTP (Time-based One-Time Password)
## Aliases
- TOTP
- Time-based One-Time Password
- 动态口令
- 一次性密码
## Type
Concept / Security Protocol
## Description
TOTP 是一种基于时间的一次性密码算法通过共享密钥和当前时间戳生成动态验证码广泛用于双因素认证2FA
## How It Works
```
1. 服务端与客户端共享一个 Secret Key密钥
2. 双方使用相同的算法:
TOTP = HMAC-SHA1(Secret Key, floor(Unix_Time / 30))
3. 每 30 秒生成一个新的 6 位数字验证码
4. 用户在登录时输入该验证码完成身份验证
```
## Key Characteristics
| 特性 | 说明 |
|------|------|
| 时效性 | 每 30 秒更新一次 |
| 长度 | 通常 6 位数字 |
| 离线可用 | 不需要网络连接(和时间同步) |
| 算法标准 | RFC 6238 |
| 变体 | HOTP基于计数器、TOTP基于时间 |
## TOTP in Password Managers
### Bitwarden (Official)
- TOTP 功能需要**付费会员**
- 自动填充验证码
- 支持大多数网站的双因素认证
### NodeWarden
- 通过 `TOTP_SECRET` 环境变量**免费**提供
- 配置后可在 Bitwarden 客户端自动获取验证码
## Setting Up TOTP Secret
在 NodeWarden 中设置 TOTP
1. 在 Two-Factor Auth 页面获取 TOTP SecretBase32 编码字符串)
2. 将 Secret 填入 `TOTP_SECRET` 环境变量
3. 在 Bitwarden 客户端添加 TOTP大多数网站在设置 2FA 时会显示密钥
4. 在 Bitwarden 客户端设置 → 高级 → 身份验证器 TOTP 中填入密钥
## Related Concepts
- [[Multi-factor-Authentication]] — TOTP 是 MFA 的一种因素
- [[Passkey]] — 基于 WebAuthn 的无密码认证,比 TOTP 更安全
- [[Self-Hosted Password Manager]] — 自托管密码管理器通常内置 TOTP 支持
## Source
- [[nodewarden-把-bitwarden-搬上-cloudflare-workers-彻底告别服务器]]

75
wiki/concepts/图床.md Normal file
View File

@@ -0,0 +1,75 @@
---
title: 图床
type: concept
tags: [image, hosting, web]
date: 2025-12-29
---
# 图床
## Definition
图床Image Hosting是指托管图片/媒体文件的服务,通过 URL 直接访问托管的文件。传统图床(如 Imgur、SM.MS是第三方云服务自托管图床则在自有服务器上运行提供完全的数据控制。
## Alternatives Comparison
| 图床方案 | 存储位置 | 成本 | 控制权 | 适用场景 |
|----------|----------|------|--------|----------|
| Imgur | 云端 | 免费有限 | 无 | 临时分享 |
| SM.MS | 云端 | 免费 | 无 | 临时分享 |
| Cloudflare R2 | 云端S3兼容 | 按量计费 | 部分 | 生产环境 |
| **MinIO + Zipline** | 本地 NAS | 仅电费 | 完全 | 自托管 |
| Chevereto | 自托管 | 仅服务器 | 完全 | 自托管 |
## Architecture Patterns
### Pattern 1: MinIO + Zipline本方案
```
[Zipline UI/API] → [S3 API] → [MinIO] → [NAS Storage]
[PostgreSQL]
(metadata)
```
### Pattern 2: Direct Upload to S3
```
[Client] → [Presigned URL] → [AWS S3/R2/MinIO]
```
### Pattern 3: Traditional Self-Hosted
```
[Nginx] → [Local Filesystem] → [Disk/NAS]
```
## Key Design Considerations
1. **存储后端选择**
- S3 兼容(如 MinIO可迁移性强与云端互通
- 本地文件系统:简单但迁移困难
2. **访问控制**
- Public Bucket图片直接访问无需认证
- Presigned URL限时访问适合私有内容
3. **元数据管理**
- 数据库存储:支持搜索、统计、管理
- 文件系统存储:简单但功能有限
4. **工作流集成**
- API 上传:[[n8n]]、脚本自动化
- 前端直传:用户体验好但需 CORS 配置
## MinIO + Zipline Specifics
- **MinIO**S3 兼容对象存储,存储文件实体
- **Zipline**:图床应用层,提供 UI + API
- **PostgreSQL**元数据存储文件名、URL、时间戳等
## Connections
- [[Zipline]] ← provides ← [[图床]]
- [[MinIO]] ← stores ← [[图床]] files
- [[n8n]] ← integrates with ← [[图床]]
## Related Concepts
- [[S3-兼容对象存储]]
- [[对象存储]]
- [[Docker堆栈]]

View File

@@ -0,0 +1,40 @@
---
title: "数据可视化"
type: concept
aliases:
- Data Visualization
- 可视化分析
tags: [bi, data, visualization, charts, dashboards]
date: 2026-04-14
---
# 数据可视化
## Definition
**数据可视化**是将数据转换为图形、图表、地图等视觉表现形式的过程,旨在帮助用户快速理解数据模式、趋势和异常。涵盖范围从简单的静态图表到复杂的交互式仪表盘和实时数据流可视化。
## 核心原则
1. **准确性**: 视觉表示忠实反映数据,避免误导性缩放或截断
2. **清晰性**: 受众能快速理解图表含义,减少不必要的视觉元素
3. **相关性**: 选择最适合数据类型的图表形式(时序数据 → 折线图,分布 → 直方图,比例 → 饼图)
4. **可操作性**: 视觉化结果应驱动决策,而非仅为装饰
## 工具层次
| 层次 | 工具示例 | 特点 |
|------|----------|------|
| 监控告警 | [[Grafana]]、Datadog | 时序数据、告警驱动 |
| BI 分析 | [[Apache Superset]]、Metabase | SQL 优先、交互探索 |
| 嵌入式 | ECharts、Plotly | Web 集成、定制化 |
| 科学可视化 | Matplotlib、Plotly | 统计图表、学术用途 |
## Home Server 场景
在 Home Server 部署中,数据可视化主要服务两类场景:
1. **系统监控**: Prometheus + Grafana 监控服务器/容器状态
2. **业务分析**: Apache Superset 连接业务数据库做数据探索
## Related Concepts
- [[BI平台]]
- [[Prometheus]]
- [[Grafana]]
- [[Apache Superset]]

View File

@@ -78,6 +78,9 @@ fi
- [[NFS]] — 网络文件系统是永久挂载的典型应用
- [[挂载点检查]] — 备份前的安全检查机制
## Related Entities
- [[rsync]] — 永久挂载的典型使用场景rsync 增量备份的目标存储
## See Also
- [[Cron定时任务]] — 永久挂载后自动执行备份
- [[进程管理]] — 网络断开时的进程控制

View File

@@ -0,0 +1,53 @@
---
title: "硬件转码"
type: concept
tags: [video, transcoding, hardware, jellyfin, performance]
date: 2026-04-14
---
# 硬件转码
通过 GPU 或专用硬件(而非 CPU 软件计算)加速视频编解码的过程。
## Core Mechanism
- 视频转码:将一种编码格式(如 H.265)转换为另一种(如 H.264)以适配不同客户端
- 软件转码:完全依赖 CPU 执行计算密集CPU 占用高
- 硬件转码:将编码计算卸载到 GPU/专用硬件单元CPU 占用极低,速度快
## 常见硬件转码方案
| 方案 | 硬件 | 接口 | 常见应用 |
|------|------|------|----------|
| Intel QuickSync | Intel CPU 集成 GPU | /dev/dri | Jellyfin、FFmpeg |
| NVIDIA NVENC | NVIDIA 独立/移动 GPU | nvidia-container-toolkit | Jellyfin、Plex、FFmpeg |
| AMD VCE | AMD GPU | /dev/dri (DRI3) | FFmpeg |
| VA-API | 通用 Linux 视频加速 API | /dev/dri | FFmpeg、mpv |
| Apple VideoToolbox | Apple Silicon / Intel Mac | 框架调用 | macOS 原生应用 |
## Jellyfin 中的硬件转码
```yaml
devices:
- /dev/dri:/dev/dri # Intel QuickSync / VA-API
```
- 群晖 NAS 优先使用 QuickSync / VA-API 降低 CPU 占用
- nyanmisaka/jellyfin 镜像预装优化 FFmpeg开箱即用 QuickSync
- 内存建议 2-4GB 以应对转码缓冲需求
## 性能对比(参考值)
| 方式 | 1080p H.265→H.264 转码1小时 | CPU 占用 |
|------|-----------------------------------|----------|
| 软件转码x264 | ~45 分钟 | 100%(多核) |
| Intel QuickSync | ~8 分钟 | ~15% |
| NVIDIA NVENC | ~5 分钟 | ~20% |
## Related Concepts
- [[设备直通]] — 将宿主机硬件设备映射到容器内使用,是硬件转码在 Docker 环境的前提
- [[软件转码]] — 无硬件加速时的 CPU 纯软件转码方案
- [[转码缓存]] — Jellyfin/Navidrome 中缓存已转码文件以避免重复转码
## Connections
- [[Jellyfin]] ← 应用场景 ← [[硬件转码]] — 媒体服务器转码加速
- [[Navidrome]] ← 应用场景 ← [[硬件转码]] — 音乐转码(音频转码)
- [[群晖 NAS]] ← 部署环境 ← [[硬件转码]] — Synology Intel CPU 支持 QuickSync
## Sources
- [[用docker安装jellyfin]] — 群晖 NAS 上 Jellyfin QuickSync 硬件转码配置

View File

@@ -0,0 +1,82 @@
---
title: "系统睡眠管理"
type: concept
tags: [操作系统, 电源管理, 服务器运维]
---
# 系统睡眠管理
> 系统睡眠管理Sytem Sleep Management是操作系统在用户空闲时降低功耗的机制包含多个层级的电源状态。服务器场景下通常需要禁用这些行为以确保持续可用性。
## 睡眠层级对比
| 层级 | macOS (pmset) | Linux (systemd-logind) | Windows |
|------|--------------|----------------------|---------|
| 显示器睡眠 | displaysleep | — | 显示器睡眠 |
| 系统空闲睡眠 | sleep | suspend | 睡眠 (S3) |
| 待机(延迟睡眠) | standby | suspend + timer | 睡眠 |
| 休眠(断电保存) | hibernatemode | hibernate | 休眠 (S4) |
| 混合睡眠 | — | hybrid-sleep | 混合睡眠 |
| 深度休眠 | — | suspend-then-hibernate | 快速启动 |
## macOS 睡眠管理
工具:`pmset`
| 参数 | 说明 |
|------|------|
| `sleep` | 系统空闲时进入睡眠S3 |
| `displaysleep` | 显示器进入低功耗 |
| `standby` | 进入完全睡眠前的定时器默认1小时 |
| `hibernatemode` | 内存内容写入磁盘后断电S4 |
Home Server 配置:
```bash
sudo pmset -a sleep 0 displaysleep 0 standby 0 hibernatemode 0
```
## Linux 睡眠管理
工具:`systemd-logind` + `/etc/systemd/logind.conf`
| 参数 | 说明 |
|------|------|
| `HandleLidSwitch` | 合盖时动作ignore/suspend/hibernate/lock |
| `AllowSuspend` | 是否允许 suspend |
| `AllowHibernate` | 是否允许 hibernate |
进阶禁用:
```bash
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
```
## 服务器场景的特殊性
1. **零物理交互**:无显示器/键盘,无法手动唤醒
2. **网络可用性要求**:持续可远程访问
3. **功耗容忍度**:始终接电,不依赖电池
4. **远程唤醒需求**:关机状态也需要 WoL 支持
## 跨平台对比
| 维度 | macOS | Ubuntu/Linux | 对应关系 |
|------|-------|-------------|---------|
| 基础禁用命令 | `pmset -a sleep 0` | `HandleLidSwitch=ignore` | sleep=HandleLidSwitch |
| 显示器睡眠 | `pmset -a displaysleep 0` | N/A无显示器概念 | 无直接对应 |
| 待机定时器 | `pmset -a standby 0` | systemd-inhibit | 后台锁定机制 |
| 休眠模式 | `pmset -a hibernatemode 0` | `systemctl mask hibernate.target` | S4=hibernate |
| 网络唤醒 | `pmset -a womp 1` | ethtool wol g | 硬件+软件配合 |
## 相关概念
- [[pmset]] — macOS 睡眠管理工具
- [[caffeinate]] — macOS 临时防止睡眠
- [[Wake-on-LAN]] — 配合睡眠管理的远程唤醒
- [[systemd-logind]] — Linux 电源管理核心
- [[HandleLidSwitch]] — Linux 合盖动作配置
- [[休眠目标]] — Linux systemd 睡眠目标管理
## 相关实体
- [[Mac Mini M4]] — macOS 系统睡眠管理的典型应用场景
- [[Ubuntu Server]] — Linux 系统睡眠管理的典型应用场景

View File

@@ -0,0 +1,62 @@
---
title: "设备直通"
type: concept
tags: [docker, hardware, device, passthrough, jellyfin]
date: 2026-04-14
---
# 设备直通
在容器化环境中将宿主机物理设备GPU、声卡、硬件编码器等映射到容器内使容器内应用可直接访问和使用该硬件。
## Core Mechanism
Docker 容器默认运行在隔离的命名空间中,容器内无法直接访问宿主机的硬件设备。设备直通通过 `--device` 参数或 `devices` 配置项,将宿主机设备节点映射到容器内,使容器内进程可以像宿主机一样访问硬件。
## Docker 配置方式
```yaml
services:
jellyfin:
devices:
- /dev/dri:/dev/dri # Intel GPU / VA-API
- /dev/nvidia0:/dev/nvidia0 # NVIDIA GPU (需 nvidia-container-toolkit)
- /dev/snd:/dev/snd:rw # 声卡设备
```
## 常见使用场景
| 场景 | 宿主机设备 | 容器用途 |
|------|-----------|----------|
| Intel QuickSync 转码 | /dev/dri/renderD* | Jellyfin / FFmpeg 硬件视频转码 |
| NVIDIA 加速 | /dev/nvidia* | CUDA 计算、视频编码 |
| 声卡直通 | /dev/snd/* | 音频播放/录制 |
| 串口设备 | /dev/ttyUSB0 | 嵌入式设备调试 |
| GPU 直通VM | PCI 设备 | 游戏 / AI 推理 |
## Jellyfin 中的设备直通
```yaml
devices:
- /dev/dri:/dev/dri
```
- `/dev/dri` 是 Linux DRMDirect Rendering Manager设备目录
- 包含 renderD128/129 等节点,代表 GPU 渲染引擎
- Intel CPU 集成 GPU 通过此接口提供 QuickSync 视频编码
- VA-API 和 VDPAU 也依赖此接口
## 权限问题
- 默认情况下,容器以非 root 用户运行时可能无法访问 `/dev/dri`
- 解决方案:
1. 将设备映射为可读(`:ro`
2.`docker run` 时加上 `--group-add video`
3. 群晖 NAS 使用 `user: "1026:100"` 映射到有权限的用户
## Related Concepts
- [[硬件转码]] — 设备直通是硬件转码在 Docker 环境下的实现前提
- [[Docker 用户权限映射]] — 解决容器用户访问宿主机设备权限问题
- [[nvidia-container-toolkit]] — NVIDIA GPU 在 Docker 中的特殊设备直通方案
## Connections
- [[Jellyfin]] ← 受益应用 ← [[设备直通]] — QuickSync 硬件转码
- [[群晖 NAS]] ← 宿主机 ← [[设备直通]] — NAS Intel CPU GPU 访问
- [[Intel QuickSync]] ← 依赖 ← [[设备直通]] — GPU 硬件加速通道
## Sources
- [[用docker安装jellyfin]] — /dev/dri 设备直通的 Docker Compose 配置示例

View File

@@ -0,0 +1,143 @@
---
title: 逻辑备份
type: concept
tags: [backup, postgresql, database]
date: 2025-12-29
---
# 逻辑备份
## Definition
逻辑备份是通过数据库工具导出数据为 SQL 语句或文本格式,而非直接复制物理数据文件。与物理备份相比,逻辑备份具有跨平台迁移能力强、不依赖特定存储格式的优势。
## PostgreSQL Logical Backup: pg_dump
### Core Command
```bash
# 基本语法
pg_dump -U username -d database_name > backup.sql
# Docker 环境(推荐)
docker exec zipline_postgres pg_dump -U zipline -d zipline > backup.sql
# 压缩格式(节省空间)
docker exec zipline_postgres pg_dump -U zipline -d zipline | gzip > backup.sql.gz
# 指定格式(自定义)
docker exec zipline_postgres pg_dump -U zipline -d zipline -Fc > backup.dump
```
### pg_dump Formats
| 格式 | 选项 | 说明 | 恢复灵活性 |
|------|------|------|------------|
| Plain SQL | `-Fp`(默认) | 纯文本 SQL可跨版本 | 高(标准 SQL |
| Custom | `-Fc` | 二进制压缩格式 | 中(需 pg_restore |
| Directory | `-Fd` | 并行导出,多文件 | 高 |
| TAR | `-Ft` | TAR 归档格式 | 中 |
## Logical vs Physical Backup
| 特性 | 逻辑备份 | 物理备份 |
|------|----------|----------|
| 备份方式 | SQL 导出 | 直接复制数据文件 |
| 热备份 | ✅ 支持 | ⚠️ 需要额外配置 |
| 数据损坏风险 | 无 | 有(热备份时) |
| 跨版本迁移 | ✅ 完全支持 | ❌ 通常不行 |
| 备份速度 | 慢 | 快 |
| 恢复速度 | 慢 | 快 |
| 增量备份 | ❌ 不支持 | ✅ 支持 |
| 适用场景 | 跨平台迁移、小数据量 | 大数据量、灾难恢复 |
## Synology NAS Backup Script
```bash
#!/bin/bash
# Zipline Stack Backup Script
BACKUP_DIR="/volume1/docker/zipline-stack/backups"
PG_CONTAINER="zipline_postgres"
PG_USER="zipline"
PG_DB="zipline"
RETENTION_DAYS=30
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p "$BACKUP_DIR"
echo "[$DATE] 开始备份 Postgres..."
# pg_dump 逻辑备份(热备份)
# 注意:这里不直接备份 /var/lib/postgresql/data 目录
# 热备份该目录会导致数据损坏
docker exec "$PG_CONTAINER" pg_dump -U "$PG_USER" -d "$PG_DB" | gzip > "$BACKUP_DIR/db_$DATE.sql.gz"
if [ $? -eq 0 ]; then
echo "[$DATE] 数据库备份成功: db_$DATE.sql.gz"
else
echo "[$DATE] !!! 数据库备份失败 !!!"
exit 1
fi
# 清理旧备份
find "$BACKUP_DIR" -name "db_*.sql.gz" -mtime +$RETENTION_DAYS -delete
echo "[$DATE] 已清理超过 $RETENTION_DAYS 天的旧备份"
echo "[$DATE] 备份流程结束。"
```
## Key Principles
1. **禁止热备份物理目录**
> "不直接备份 /var/lib/postgresql/data 目录,因为热备份该目录会导致数据损坏"
2. **与文件备份配合**
- 逻辑备份pg_dump → SQL 文件
- 文件备份Hyper Backup → MinIO 数据目录
- 两者需尽量接近时间点备份
3. **自动化**
- Synology Task Scheduler每日凌晨 3:00
- 日志输出:`>> backup.log 2>&1`
## "脑体分离" Architecture Challenge
[[Zipline]] 的备份挑战在于"脑体分离"
```
大脑 (PostgreSQL) 身体 (MinIO)
│ │
▼ ▼
"文件A的ID是123 实际存储了 a.jpg
位于MinIO的/bucket/a.jpg"
│ │
└──────── 需同步备份 ────────┘
```
**风险**:如果在 10:00 备份了数据库10:05 备份了 MinIO但这 5 分钟内上传了新文件,恢复时就会出现"数据库找不到文件"或"文件没记录"的幽灵数据。
**缓解方案**:尽量缩短两个备份的时间间隔,使用自动化脚本同时触发。
## Restore Commands
```bash
# 恢复 Plain SQL
gunzip < backup.sql.gz | psql -U username -d database_name
# 恢复 Custom Format
pg_restore -U username -d database_name -c backup.dump
# Docker 环境
cat backup.sql.gz | gunzip | docker exec -i zipline_postgres psql -U zipline -d zipline
```
## Connections
- [[PostgreSQL]] ← backed up by ← [[逻辑备份]]
- [[Zipline]] ← metadata stored in ← [[PostgreSQL]]
- [[pg_dump]] ← tool for ← [[逻辑备份]]
- [[数据一致性]] ← challenge of ← [[逻辑备份]] + 文件备份
## Related Concepts
- [[增量备份]]
- [[全盘镜像备份]]
- [[数据一致性]]
- [[备份脚本]]

View File

@@ -0,0 +1,50 @@
---
title: "Apache Superset"
type: entity
aliases:
- Superset
- Apache Superset
tags: [apache, bi, docker, data-visualization]
date: 2026-04-14
---
# Apache Superset
## Overview
Apache Superset 是 Apache 软件基金会旗下的开源 **Business Intelligence (BI) 平台**提供数据可视化、仪表盘构建、SQL 查询和数据分析功能。Superset 基于 **Flask-AppBuilder**Fab框架构建支持通过插件扩展图表类型并与多种数据源集成MySQL、PostgreSQL、SQLite、Druid 等)。
## Key Attributes
- **类型**: Product / Open Source Project
- **维护方**: Apache Software Foundation
- **编程语言**: Python (Flask)
- **前端**: React
- **默认端口**: 8088
- **默认数据库**: SQLite生产环境建议外挂 PostgreSQL 或 MySQL
## Docker 部署
通过 Docker 镜像容器化部署是 Home Server 场景的推荐方式:
- **镜像**: `apache/superset:GHA-*`GitHub Actions 构建版本)
- **6 步初始化流程**:
1. `docker pull apache/superset:GHA-*`
2. `docker run -d -p 8777:8088 -e SUPERSET_SECRET_KEY=... --name superset apache/superset:GHA-*`
3. `docker exec -it superset superset fab create-admin`(创建管理员账户)
4. `docker exec -it superset superset db upgrade`(数据库迁移)
5. `docker exec -it superset superset load_examples`(加载示例数据)
6. `docker exec -it superset superset init`(完成初始化)
- **端口映射**: 宿主机 8777 → 容器 8088
## Related Entities
- [[Docker]] — 部署底座
- [[MySQL]] — 支持的外挂数据库后端
- [[Portainer]] — 可用于管理 Superset 容器生命周期
- [[Jellyfin]] — 同属 Home Server 可视化服务系列(视频 vs 数据)
- [[Prometheus]] — 可作为数据源接入 Superset
- [[Grafana]] — 功能重叠的替代方案Superset 更偏重 BI/GalleryGrafana 更偏重监控
## Related Concepts
- [[BI平台]] — 核心概念定义
- [[数据可视化]] — 核心应用场景
- [[Docker容器化部署]] — 部署方法论
## Sources
- [[用docker安装apache-superset]]

57
wiki/entities/Calibre.md Normal file
View File

@@ -0,0 +1,57 @@
# Calibre
> Calibre开源电子书库管理工具在 Synology NAS 上以 Docker 方式部署,提供电子书管理、格式转换和 Web 阅读界面。
## Overview
Calibre 是功能最强大的开源电子书库管理工具支持电子书格式转换、元数据编辑、新闻订阅、Web服务器等功能。本方案中通过 Docker Compose 在 Synology NAS DS718 上部署 Calibre-Web提供公网访问。
## Deployment
|| 项目 | 配置 |
|------|------|
| 部署位置 | Synology NAS DS718192.168.3.17|
| 容器名称 | calibre |
| 内网端口 | 8083 |
| 公网域名 | calibre.ishenwei.online |
| FRP remotePort | 18083 |
| FRP 客户端 | NAS frpc |
| Docker 镜像 | ghcr.io/linuxserver/calibre-web推测|
## Architecture
```
[用户]
│ HTTPS: calibre.ishenwei.online
[Cloudflare DNS → RackNerd VPS]
│ HTTPS 反向代理
[Caddy (VPS)]
│ FRP 隧道 (端口 18083)
[NAS:8083]
Calibre-Web
```
## Key Features
1. **电子书管理**:支持 EPUB/MOBI/AZW3/PDF/TXT 等格式
2. **元数据编辑**封面、作者、出版商、ISBN 等信息管理
3. **格式转换**Calibre 内核支持 20+ 格式转换
4. **Web 服务器**:内置 Web UI支持多设备阅读
5. **新闻订阅**:支持 RSS/Atom 格式新闻自动下载
## Related Concepts
- [[媒体服务器]] — 与 Jellyfin/Navidrome 构成家庭媒体服务矩阵
- [[Docker堆栈]] — NAS 上通过 Docker Compose 部署
- [[反向代理]] — 通过 Caddy + FRP 暴露公网访问
## Related Entities
- [[Synology NAS DS718]] — 部署宿主
- [[RackNerd]] — 公网 VPSCaddy
- [[FRP]] — 内网穿透机制
- [[Jellyfin]] — 视频媒体服务(同一 NAS
- [[Navidrome]] — 音乐流媒体服务(同一 NAS

View File

@@ -0,0 +1,88 @@
---
title: "Docker Network"
tags: [docker, networking, container]
date: 2026-04-22
---
# Docker Network
## Definition
Docker Network 是 Docker 提供的容器网络连接机制支持多种网络驱动bridge / host / overlay / macvlan / none使容器能够相互通信并与外部网络交互。
## Network Drivers
| 驱动 | 用途 | 特点 |
|------|------|------|
| **bridge** | 默认网络驱动 | 容器通过虚拟网桥通信,默认 bridge IP 为 172.17.0.1 |
| **host** | 移除网络隔离 | 容器直接使用宿主机网络栈 |
| **overlay** | Docker Swarm 多主机通信 | 跨多个 Docker daemon |
| **macvlan** | 给容器分配真实 MAC | 容器像物理机一样出现在网络中 |
## 查看与管理命令
```bash
# 查看所有网络
docker network ls
# 查看特定网络的详细信息驱动、容器、IP
docker network inspect bridge
# 查看连接了某网络的容器
docker network inspect <network_name> --format '{{range .Containers}}{{.Name}} {{end}}'
# 创建自定义 bridge 网络
docker network create --driver bridge my_network
# 删除网络
docker network rm my_network
# 删除前先断开容器连接
docker network disconnect my_network container_name
```
## Docker Compose 中的 Network
```yaml
services:
app:
networks:
- frontend
- backend
networks:
frontend:
driver: bridge
backend:
driver: bridge
```
## Compose 项目间命名冲突
Docker Compose 默认以**项目目录名**作为网络名前缀:
- 项目 A目录 `~/portainer`)→ 网络名 `portainer_default`
- 项目 B目录 `~/portainer-stack`)→ 网络名 `portainer-stack_default`
当两个项目名不同但都声明了 `portainer_network` 时,会产生警告:
> WARN: Network portainer_network declared as external, but it does not exist
**解决方案**
1. 删除旧网络:`docker network rm portainer_network`
2. 或在 compose 中声明 `external: true` 复用已存在的网络
## External Mode复用外部网络
```yaml
networks:
portainer_network:
external: true
```
声明 `external: true`Compose 不会尝试创建网络,而是直接使用已存在的同名网络。
## Related Concepts
- [[Docker Compose]] — compose 中声明式定义网络
- [[Docker堆栈]] — 堆栈中多服务共享网络
- [[桥接网络]] — Docker bridge 网络驱动
## Related Entities
- [[Portainer]] — Docker 可视化管理工具,提供网络管理 Web UI
- [[群晖 NAS]] — Docker 网络配置的平台
- [[Docker]] — 网络系统的底层平台
## See Also
- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] — Prometheus 部署涉及 Docker 网络配置

View File

@@ -61,6 +61,7 @@ docker load < images.tar
## Related Entities
- [[Navidrome]] — 音乐流媒体服务使用 Docker 卷存储音乐文件和数据库
- [[群晖 NAS]] — 网络存储作为 Docker 卷备份的目标位置
- [[Portainer]] — Docker 可视化管理工具,通过 Web UI 查看/管理卷Portainer 重装前可通过 `docker volume ls | grep portainer` 查找 `portainer_data` 卷,删除前需确认是否需要保留数据
## Best Practices
1. **数据库一致性**: 使用 mysqldump 而非直接复制

76
wiki/entities/Jellyfin.md Normal file
View File

@@ -0,0 +1,76 @@
---
title: "Jellyfin"
type: entity
tags: [video, media-server, self-hosted, open-source, docker]
date: 2026-04-14
---
# Jellyfin
开源视频媒体服务器,提供网页端流媒体播放、管理界面和转码能力。
## Aliases
- Jellyfin Media Server
- Jellyfin Server
## Type
开源自托管视频流媒体服务器Emby 分支)
## Core Functionality
- 视频播放与管理,支持电影、电视剧、体育节目等多种媒体类型
- 硬件加速视频转码Intel QuickSync / NVIDIA GPU / VA-API / AMD VCE
- 元数据刮削TMDB/TheTVDB 等)
- 多用户支持与播放进度追踪
- DLNA / Chromecast / Apple TV / Roku 等设备投射
- Web UI + 官方客户端Android / iOS / TV 版)
## Key Images
| 镜像 | 维护者 | 特点 |
|------|--------|------|
| linuxserver/jellyfin | LinuxServer.io | 官方稳定版 |
| nyanmisaka/jellyfin | 社区维护 | 预装优化 FFmpeg硬件转码开箱即用 |
## Docker 配置关键参数nyanmisaka 镜像)
```yaml
services:
jellyfin:
image: nyanmisaka/jellyfin:latest
user: "1026:100" # 群晖 UID:GID
ports:
- 8096:8096/tcp # Web UI
- 7359:7359/udp # 自动发现
volumes:
- /volume1/docker/jellyfin/config:/config
- /volume1/docker/jellyfin/cache:/cache
- /volume2/movie:/media
- "/volume1/TV shows:/media2"
- /volume1/docker/jellyfin/fonts:/usr/local/share/fonts/custom:ro
environment:
- JELLYFIN_PublishedServerUrl=http://jellyfin.ishenwei.online
- TZ=Asia/Shanghai
devices:
- /dev/dri:/dev/dri # Intel QuickSync 硬件转码
restart: unless-stopped
extra_hosts:
- 'host.docker.internal:host-gateway'
```
## Hardware Transcoding
- **Intel QuickSync**:通过 `/dev/dri` 设备直通nyanmisaka 镜像预装支持
- **NVIDIA GPU**:需 nvidia-container-toolkit
- **软件转码**ffmpeg fallback适合低功耗设备
## 性能考量
- 媒体转码建议内存 2-4GB
- 群晖 NAS 上优先使用 QuickSync / VA-API 硬件转码以降低 CPU 占用
- cache 目录建议 SSD 以提升元数据和缩略图读写性能
## Connections
- [[Transmission]] ← 下载端 → [[Jellyfin]](播放端)— "下载→整理→播放" 家庭媒体工作流
- [[Navidrome]] ← 对标竞品 → [[Jellyfin]] — Navidrome 服务音乐Jellyfin 服务视频
- [[群晖 NAS]] ← 宿主机 → [[Jellyfin]] — NAS 提供存储和 Docker 运行环境
- [[nyanmisaka/jellyfin]] ← 优化镜像 → [[Jellyfin]] — 预装硬件转码支持的社区镜像
- [[LinuxServer.io]] ← 官方镜像 → [[Jellyfin]] — 稳定版官方镜像维护组织
## Sources
- [[用docker安装jellyfin]] — 在群晖 NAS 上部署 Jellyfin 的完整 Docker Compose 配置

View File

@@ -19,12 +19,20 @@ Mac Mini M4 是 Apple 2024 年推出的迷你台式机,搭载 Apple M4 芯片
## Home Server Use Cases
### Core Services
| 服务 | 用途 | 端口 |
|------|------|------|
| FRP 客户端 | 内网穿透,远程访问 | frpc → VPS:7000 |
| N8n | 工作流自动化 | 5678 |
| OpenClaw | AI Agent | 8080 |
| Hermes Agent | 个人 AI 助手 | Telegram Bot |
|| 服务 | 用途 | 端口 | 公网访问 |
|------|------|------|------|----------|
| FRP 客户端 | 内网穿透,远程访问 | frpc → VPS:7000 | SSH:60026, vaultwarden:15151 |
| OpenClaw | AI Agent主运行环境| 8080 | — |
| Hermes Agent | 个人 AI 助手 | Telegram Bot | — |
| vaultwarden | 密码管理器 | 5151 | ✅ vaultwarden.ishenwei.online |
| STQ nginx | STQ 项目前端反向代理 | 7777 | ✅ stq-admin.ishenwei.online |
| STQ frontend | STQ 项目前端 | 5173 | ✅ stq.ishenwei.online |
| STQ web | STQ Web 服务 | 8000 | — |
| STQ mariadb | STQ 数据库 | 3306 | — |
| STQ n8n | STQ 专用 n8n | 62000 | ✅ stq-n8n.ishenwei.online |
| Portainer | Docker 管理(历史版)| 9000 | 已废弃,使用各服务器本地 Portainer |
> ⚠️ **重要更新**n8n 工作流自动化平台已从 Mac Mini 迁移至 Ubuntu2端口5678Mac Mini 不再暴露 n8n 端口。
### macOS-Specific Considerations
1. **ARM64 架构**:必须下载 ARM64 版本的软件(如 `frp_0.65.0_darwin_arm64.tar.gz`
@@ -82,12 +90,36 @@ Mac Mini M4 是 Apple 2024 年推出的迷你台式机,搭载 Apple M4 芯片
| tmux | 开发调试 | tmux new -s / attach |
| nohup | 简单后台 | nohup ./program & |
## Power & Sleep Configuration (Home Server)
作为 Headless 服务器运行Mac Mini 必须禁用所有自动睡眠行为以确保远程访问工具RustDesk/VNC持续可用
```bash
sudo pmset -a sleep 0 # 禁止系统睡眠
sudo pmset -a displaysleep 0 # 禁止显示器关闭
sudo pmset -a standby 0 # 禁止待机模式
sudo pmset -a hibernatemode 0 # 禁止休眠
sudo pmset -a womp 1 # 启用 Wake-on-LAN可远程唤醒
```
临时方案:
```bash
caffeinate -d -i -s # 临时防止睡眠(按 Ctrl+C 停止)
```
相关概念:[[pmset]] | [[caffeinate]] | [[Wake-on-LAN]] | [[系统睡眠管理]]
## Related Concepts
- [[frp]] — 内网穿透工具
- [[launchd]] — macOS 服务管理器
- [[Gatekeeper]] — macOS 安全机制
- [[软链接策略]] — 版本管理策略
- [[内网穿透]] — 远程访问机制
- [[pmset]] — macOS 电源管理(防止自动睡眠的核心命令)
- [[caffeinate]] — macOS 临时防止睡眠
- [[Wake-on-LAN]] — 网络唤醒,支持远程唤醒关机状态的 Mac Mini
- [[系统睡眠管理]] — macOS/Linux 睡眠层级对比框架
- [[Headless 服务器]] — 无显示器服务器模式Mac Mini 的典型运行方式
## Related Entities
- [[VPS]] — 内网穿透的公网中转站

108
wiki/entities/MinIO.md Normal file
View File

@@ -0,0 +1,108 @@
---
title: MinIO
type: entity
tags: [docker, storage, s3, minio]
date: 2025-12-29
---
# MinIO
## Aliases
- MinIO
- MinIO Server
## Definition
MinIO 是一个开源的 S3 兼容对象存储服务器,专为高性能、海量数据场景设计。作为 [[Zipline]] 图床系统的存储后端MinIO 提供 S3 API 兼容接口,使应用无需修改即可对接。
## Core Characteristics
| 特性 | 说明 |
|------|------|
| 协议兼容 | S3 APIAmazon Simple Storage Service |
| 部署模式 | 单机 / 分布式(纠删码模式) |
| 存储介质 | 直连磁盘,无特殊要求 |
| 管理界面 | MinIO Console默认端口 9001 |
| API 端口 | 默认 9000 |
| 授权协议 | AGPLv3 |
## Architecture
```
[Application] --S3 API--> [MinIO Server] ---> [Disk/NAS Storage]
^ |
|______________________________|
MinIO Console (9001)
```
## Key Commands (mc CLI)
```bash
# 安装 MinIO Client
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
# 设置 alias
mc alias set local http://192.168.3.17:9000 admin StrongPasswordHere
# 创建 bucket
mc mb local/zipline-bucket
# 匿名访问策略
mc anonymous set public local/zipline-bucket # 公共读写
mc anonymous set download local/zipline-bucket # 仅下载
mc anonymous set upload local/zipline-bucket # 仅上传
mc anonymous set none local/zipline-bucket # 禁用匿名
# 查看 bucket 内容
mc ls local/zipline-bucket
```
## Use Cases in Home Server
- [[Zipline]] 图床存储后端
- S3 兼容备份目标(替代 AWS S3
- 私有云对象存储
- AI 模型权重文件存储
## Docker Deployment
```yaml
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: Abcd_1234
ports:
- "9000:9000" # S3 API
- "9001:9001" # Console
volumes:
- /volume1/docker/zipline-stack/minio/minio_data:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
```
## Performance Characteristics (vs Zipline)
| 项目 | MinIO | Zipline |
|------|-------|---------|
| 存储性能 | 仅受 NAS 硬盘/SSD 限制 | 仅处理 metadata |
| 并发 | 高S3 原生并行) | 中等(单 Node.js 进程) |
| 数据库 | 无(内置 KV | PostgreSQL/SQLite |
| 扩展性 | 可横向扩容 | 单实例 → 前端微服务 |
| REST API | 完备 | 完备(适合 n8n |
## Connections
- [[Zipline]] ← stores files ← [[MinIO]]
- [[群晖 NAS]] ← hosts ← [[MinIO]]
- [[Docker堆栈]] ← part of ← [[MinIO]]
- [[mc命令]] ← manages ← [[MinIO]]
## Related Concepts
- [[S3-兼容对象存储]]
- [[对象存储]]
- [[图床]]
- [[数据一致性]]

115
wiki/entities/Portainer.md Normal file
View File

@@ -0,0 +1,115 @@
---
title: "Portainer"
tags: [docker, container, management, web-ui]
date: 2026-04-22
---
# Portainer
## Description
Portainer 是一个开源的 Docker 和 Kubernetes 可视化管理工具,通过 Web UI 简化容器、镜像、卷、网络、配置的日常运维操作。Community EditionCE免费开源BEBusiness Edition提供额外安全和企业功能。
## Versions
- **Portainer CE**(社区版):免费开源,通过 `portainer/portainer-ce:lts` 镜像部署
- **Portainer BE**(商业版):面向企业,支持 RBAC、审计日志、团队管理等
## Deployment
```yaml
services:
portainer:
image: portainer/portainer-ce:lts
container_name: portainer
restart: unless-stopped
ports:
- "9443:9443" # HTTPS API
- "8000:8000" # Edge Agent
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
```
## Key Ports
| 端口 | 用途 |
|------|------|
| 9443 | HTTPS 管理 APIWeb UI |
| 8000 | Edge Agent 通信端口 |
## Key Concepts
### Volume
Portainer 的 `portainer_data` 卷存储所有持久化数据:
- 用户账户和认证信息
- 环境配置和设置
- Edge Agent 连接信息
- 团队和角色定义BE 版)
**删除该卷会永久丢失所有数据**,重装前务必确认是否需要保留。
### Network
Portainer 默认创建 `portainer_network` bridge 网络(或类似名称),供 Agent 和 Core 通信。
### 重装流程
当需要重新部署 Portainer 时,必须先清理旧资源,否则会产生警告:
```bash
# 1. 查找容器
docker ps -a | grep portainer
# 2. 停止并删除旧容器
docker stop portainer && docker rm portainer
# 3. 查看旧卷(可选)
docker volume ls | grep portainer
# 4. 如需保留数据,不删卷;如需全新开始,删卷
docker volume rm portainer_data
# 5. 查看旧网络(可选)
docker network ls | grep portainer
# 6. 如需重建,删旧网络
docker network rm portainer_network
# 7. 重新启动
docker compose up -d
```
### External Mode数据保留重装
若需保留现有配置和数据,在 compose 文件中声明:
```yaml
volumes:
portainer_data:
external: true
networks:
portainer_network:
external: true
```
这样 `docker compose up` 不会尝试创建同名卷/网络,而是直接复用已存在的。
## Common Warnings
### WARN 1: Network 已存在但不是当前项目创建
**原因**:之前的 compose 文件(或不同项目名)已创建了同名网络。
**解决**:在 compose 中声明 `external: true` 复用,或删除旧网络后重建。
### WARN 2: Volume 已存在但属于另一个 compose 项目
**原因**:使用不同项目名部署过 Portainer遗留了旧卷。
**解决**:同上。
## Alternatives
- **CLI 工具**`docker ps``docker volume ls``docker network ls` 等命令行管理
- **LazyDocker**:终端 TUI 工具
- **DockStation**:桌面应用
## Related Concepts
- [[Docker]] — Portainer 管理的底层容器化平台
- [[Docker Compose]] — Portainer 的推荐部署方式
- [[Docker卷]] — Portainer 的持久化存储
- [[Docker Network]] — Portainer 的网络连接
- [[external配置]] — compose 中复用外部资源的机制
## Related Entities
- [[LinuxServer.io]] — 开源 Docker 镜像维护组织Portainer 是独立组织)
- [[群晖 NAS]] — Portainer 常见的部署平台
- [[Docker]] — Portainer 管理的核心对象

91
wiki/entities/RackNerd.md Normal file
View File

@@ -0,0 +1,91 @@
# RackNerd
> RackNerd低总价 VPS 提供商,托管星曜家庭网络的公网入口节点,运行 FRP 服务端和 Caddy 自动 HTTPS 反向代理。
## Overview
RackNerd 是一家专注于低总价 VPS 的服务商,提供 OpenVZ 和 KVM 架构的虚拟专用服务器。本方案中使用 RackNerd VPS 作为公网中转站VPS1托管 FRP 服务端frps和 Caddy 自动 HTTPS 反向代理服务器,为所有内网服务提供统一的公网 HTTPS 入口。
## Network Configuration
|| 项目 | 配置 |
|------|------|
| 公网 IP | 192.227.222.142 |
| 公共域名 | vps.ishenwei.online |
| SSH | 已启用ssh vps1|
## Installed Applications
|| 服务 | Docker | 说明 | 公网访问 |
|------|--------|--------|------|----------|
| Caddy | No | 现代化Web服务器自带HTTPS自动化证书申请作为前置反向代理处理业务流量 | 通过 *.ishenwei.online 域名访问 |
| FRP Server (frps) | No | 高性能内网穿透服务端端口7000将内网服务暴露至公网 | FRP隧道 |
## Architecture Role
RackNerd VPS 在整个家庭网络架构中扮演**公网网关**角色:
```
[用户/客户端]
│ HTTPS (*.ishenwei.online)
[Cloudflare DNS]
ishenwei.online 域名的 DNS 托管
A 记录 → 192.227.222.142
│ HTTPS 请求
[RackNerd VPS: Caddy]
自动申请 Let's Encrypt SSL 证书
根据域名反向代理到对应 FRP 端口
│ FRP 隧道 (端口 7000)
[内网各节点 frpc 客户端]
Mac Mini M4 (192.168.3.189)
Synology NAS (192.168.3.17)
Ubuntu Server 1 (192.168.3.47)
Ubuntu Server 2 (192.168.3.45)
```
## Domain Mapping (Caddy → FRP Port)
|| 域名 | FRP remotePort | FRP 客户端 | 服务 |
|--------|----------------|-----------|------|
| vaultwarden.ishenwei.online | 15151 | macmini | vaultwarden |
| n8n.ishenwei.online | 15679 | ubuntu2 | n8n |
| it-tools.ishenwei.online | 18999 | ubuntu1 | it-tools |
| drawio.ishenwei.online | 18085 | ubuntu2 | Draw.io |
| transmission.ishenwei.online | 19091 | ubuntu1 | Transmission |
| grafana.ishenwei.online | 13000 | ubuntu1 | Grafana |
| nas.ishenwei.online | 15000 | VPS直连 | DSM |
| navidrome.ishenwei.online | 14533 | NAS | Navidrome |
| calibre.ishenwei.online | 18083 | NAS | Calibre |
| dashboard.ishenwei.online | 17575 | ubuntu1 | Homarr |
| miniflux.ishenwei.online | 18080 | NAS | Miniflux |
| zipline.ishenwei.online | 13333 | NAS | Zipline |
| superset.ishenwei.online | 18777 | ubuntu1 | Apache Superset |
| tk.ishenwei.online | 18888 | ubuntu1 | TikTok PM |
| tk-dev.ishenwei.online | 18889 | ubuntu2 | TikTok PM (DEV) |
| jellyfin.ishenwei.online | 18096 | NAS | Jellyfin |
| portainer1.ishenwei.online | 19443 | ubuntu1 | Portainer |
| stq.ishenwei.online | 15173 | ubuntu1 | STQ |
| stq-admin.ishenwei.online | 17000 | ubuntu1 | STQ Admin |
| stq-n8n.ishenwei.online | 15678 | ubuntu1 | STQ N8n |
## Aliases
- RackNerd VPS
## Related Concepts
- [[反向代理]] — Caddy根据域名将请求反向代理到内网服务
- [[HTTPS自动化证书]] — Caddy自动申请和管理Let's Encrypt SSL证书
- [[内网穿透]] — FRP反向隧道机制
- [[DNS托管]] — Cloudflare托管ishenwei.online域名DNS
## Related Entities
- [[Caddy]] — 自动HTTPS反向代理VPS上运行
- [[FRP]] — 内网穿透工具frps在VPS, frpc在各内网节点
- [[Cloudflare]] — DNS托管服务商
- [[Synology NAS DS718]] — 内网NASfrpc客户端之一
- [[Mac Mini M4]] — 主控节点frpc客户端之一
- [[Ubuntu Server]] — 内网服务器节点frpc客户端

56
wiki/entities/RustDesk.md Normal file
View File

@@ -0,0 +1,56 @@
---
title: "RustDesk"
type: entity
tags: [远程桌面, 开源, Rust]
last_updated: 2026-04-14
---
# RustDesk
开源远程桌面软件,支持自建中继服务器,可在任意网络环境下实现远程控制。
## 基本信息
- **类型**:远程桌面软件
- **开源协议**Apache 2.0
- **技术栈**Rust
- **官网**https://rustdesk.com
## 核心特性
- **自建中继服务器**:不依赖第三方服务器,可完全自托管,保护隐私
- **跨平台支持**Windows / macOS / Linux / Android / iOS
- **点对点直连**:同网络下自动建立 P2P 连接,减少延迟
- **中继Fallback**P2P 失败时自动切换到中继服务器
## Ubuntu 24.04 Wayland 兼容性
Ubuntu 24.04 默认使用 Wayland 显示协议,而 Wayland 基于安全设计严格限制外部程序在未登录状态下Login Screen获取屏幕控制权导致 RustDesk 无法在 GDM 登录界面工作。
### 解决方案
修改 `/etc/gdm3/custom.conf`,将 `WaylandEnable=false` 取消注释,强制 GDM 使用 X11
```bash
sudo nano /etc/gdm3/custom.conf
# 找到并修改:
[daemon]
WaylandEnable=false
# 保存后重启:
sudo systemctl restart gdm3
```
此配置使 RustDesk 能在以下场景正常工作:
- **登录前Login Screen**GDM 使用 X11RustDesk 可识别窗口并交互
- **登录后Post-Login**X11 的稳定性和权限开放度优于 Wayland
## 相关配置
- [[X11]] — 显示协议(替代 Wayland 的兼容性方案)
- [[Wayland]] — Ubuntu 24.04 默认显示协议(导致问题的原因)
- [[GDM3]] — GNOME Display Manager控制显示协议切换
- [[Ubuntu Server]] — 部署 RustDesk 的目标操作系统
## 与其他远程桌面方案对比
| 方案 | 自托管 | 跨平台 | Wayland 支持 | 中继服务器 |
|------|--------|--------|--------------|------------|
| RustDesk | ✅ 完全开源 | ✅ 全平台 | ❌ 需切换到 X11 | ✅ 可自建 |
| TeamViewer | ❌ 闭源 | ✅ 全平台 | ⚠️ 部分支持 | ❌ 依赖官方 |
| AnyDesk | ❌ 闭源 | ✅ 全平台 | ⚠️ 部分支持 | ❌ 依赖官方 |
| VNC | ✅ 开源 | ✅ 全平台 | ❌ 需额外配置 | ❌ 需手动设置 |

View File

@@ -0,0 +1,108 @@
# Synology NAS DS718
> Synology DS718 群晖 NAS作为家庭存储和多媒体服务器运行提供媒体服务、监控栈、云盘挂载等核心应用。
## Overview
Synology NAS DS718 是群晖Synology推出的双盘位 NAS 设备,搭载 Intel Celeron J3455 处理器x86_64架构作为家庭网络的核心存储和多媒体中心。本方案中托管了近20个 Docker 应用,涵盖媒体服务、监控系统、密码管理、云盘挂载、开发工具等多个类别,并通过 FRP + Caddy 将核心服务暴露至公网。
## Hardware & Network
|| 项目 | 配置 |
|------|------|
| 型号 | Synology DS718 |
| 处理器 | Intel Celeron J3455x86_64|
| 内网 IP | 192.168.3.17 |
| 公网域名 | nas.ishenwei.online |
| SSH | 已启用 |
| DSM 管理 | https://nas.ishenwei.online:5000通过FRP+Caddy|
## Installed Applications (Docker)
|| 服务 | 端口 | 公网访问 | 说明 |
|------|------|------|----------|------|
| Synology DSM | 5000 | ✅ nas.ishenwei.online | 系统核心管理界面 |
| Calibre | 8083 | ✅ calibre.ishenwei.online | 电子书库管理工具 |
| MinIO | 9001 | — | S3兼容对象存储Zipline后端|
| Zipline | 3333 | ✅ zipline.ishenwei.online | 轻量级文件分享与图床 |
| Navidrome | 4533 | ✅ navidrome.ishenwei.online | 音乐流媒体服务 |
| Jellyfin | 8096 | ✅ jellyfin.ishenwei.online | 视频媒体服务器 |
| Prometheus | 9090 | — | 时序数据库监控系统 |
| Alertmanager | 9093 | — | 告警中心 |
| node_exporter | 9100 | — | 硬件监控探针 |
| v2rayA | 2017 | — | V2Ray图形化代理客户端SOCKS5:10808本机监听|
| vaultwarden | 5151 | — | 密码管理器NAS版|
| Portainer | 9443 | — | Docker容器管理界面 |
| CloudDrive2 | 19798 | — | 多云盘挂载(阿里云盘)|
| Zipline Postgres | 5432 | — | Zipline后端数据库 |
| FRP Client | /opt/frp/ | — | 内网穿透客户端frpc|
## FRP Port Mappings (公网暴露)
|| 服务 | 来源服务器 | remotePort |
|------|-----------|------------|
| nas.ishenwei.online | VPS直连 | 15000 |
| navidrome | NAS frpc | 14533 |
| calibre | NAS frpc | 18083 |
| jellyfin | NAS frpc | 18096 |
| zipline | NAS frpc | 13333 |
| miniflux | NAS frpc | 18080 |
## Key Features
### 媒体服务
- **Jellyfin**端口8096开源视频媒体服务器支持硬件转码Intel QuickSync公网通过FRP+Caddy访问
- **Navidrome**端口4533开源音乐流媒体服务器Subsonic API兼容支持网页端与移动客户端
- **Calibre**端口8083电子书库管理工具支持格式转换、元数据管理和Web界面
### 监控系统
- **Prometheus**端口9090时序数据库采集node_exporter/cAdvisor/blackbox_exporter指标
- **Alertmanager**端口9093Prometheus告警分发支持分组、抑制、静默和多通道路由
- **node_exporter**端口9100主机指标采集采集CPU/内存/磁盘/网络等系统指标
### 存储与备份
|- **MinIO**端口9001S3兼容对象存储Zipline图床的存储后端
|- **CloudDrive2**端口19798阿里云盘/Google Drive/OneDrive等云盘虚拟挂载支持扫码App授权
|- **Zipline**端口3333自托管图床提供前端上传UI和REST API数据库为PostgreSQL
|- **NFS 服务端**:通过 DSM 控制面板 → 共享文件夹 → NFS 权限,为 Ubuntu Server 提供网络文件系统挂载,存储 rsync 增量备份数据关键配置Squash=映射所有用户为admin、安全性=sys、勾选"允许非特权端口"
### 科学上网
- **v2rayA**端口2017V2Ray图形化代理客户端支持透明代理和分流策略
- ⚠️ SOCKS5代理端口20170**仅本机监听**Docker pull可能仍受限
## Aliases
- 群晖 NAS
- Synology NAS
- DS718
- NAS
## Related Concepts
- [[Docker堆栈]] — 本NAS上所有应用通过Docker Compose管理
- [[S3-兼容对象存储]] — MinIO作为Zipline存储后端
- [[时序数据库]] — Prometheus作为监控数据引擎
- [[合成监控]] — blackbox_exporter + Prometheus的探测机制
- [[告警管理]] — Alertmanager处理Prometheus告警路由
- [[内网穿透]] — FRP反向隧道机制
- [[反向代理]] — Caddy根据域名代理到FRP映射端口
- [[云盘挂载]] — CloudDrive2的阿里云盘挂载机制
## Related Entities
- [[Prometheus]] — 监控数据采集引擎NAS运行
- [[Grafana]] — 监控可视化Ubuntu1运行但消费NAS的Prometheus数据
- [[Alertmanager]] — 告警路由NAS运行
- [[Jellyfin]] — 视频媒体服务器
- [[Navidrome]] — 音乐流媒体服务器
- [[Zipline]] — 图床应用
- [[MinIO]] — 对象存储
- [[Caddy]] — 自动HTTPS反向代理VPS运行
- [[FRP]] — 内网穿透frps:VPS, frpc:NAS
- [[RackNerd]] — 公网VPS提供商
- [[矿神源]] — 群晖第三方套件源SPK格式
- [[阿里云盘]] — CloudDrive2的挂载目标
## References
- Synology: DS718 Product Page
- Jellyfin: jellyfin.org
- Navidrome: navidrome.org
- MinIO: min.io
- Zipline: zipline.urlminer.com
- Calibre: calibre-ebook.com

View File

@@ -128,14 +128,12 @@ snap refresh # 更新所有 snap
| **更新频率** | LTS 优先稳定性 | 更频繁的新特性 |
## Home Server Applications on Ubuntu Server
Ubuntu Server 是家庭服务器的理想选择:
- **NAS 存储**Samba/NFS/RAID 配置
- **Docker 容器**Portainer/Transmission/Jellyfin/Navidrome
- **FRP 内网穿透**frpc 连接公网 VPS
- **媒体服务器**Jellyfin/Navidrome/Emby
- **下载服务**Transmission/Deluge/qBittorrent
- **监控服务**Prometheus/Grafana/Nagios
- **Home Automation**Home Assistant
|Ubuntu Server 是家庭服务器的理想选择:
|- **NAS 存储**Samba/NFS/RAID 配置NFS 永久挂载到 Synology NAS
|- **Docker 容器**Portainer/Transmission/Jellyfin/Navidrome
|- **FRP 内网穿透**frpc 连接公网 VPS
|- **NFS 客户端**:通过 nfs-common 挂载 Synology NAS 共享文件夹,配合 rsync 实现增量备份
|- **rsync 自动化**:定时任务执行 rsync 增量同步到 NAS配合挂载点检查防止数据写入本地磁盘
## Related Concepts
- [[systemd]] — Ubuntu Server 的默认初始化系统

116
wiki/entities/Zipline.md Normal file
View File

@@ -0,0 +1,116 @@
---
title: Zipline
type: entity
tags: [docker, image, zipline, n8n]
date: 2025-12-29
---
# Zipline
## Aliases
- Zipline
- Zipline Image Host
- diced/zipline
## Definition
Zipline 是一个开源的自托管图床应用,提供图片上传 UI 和 REST API支持 S3 兼容存储后端。作为 [[n8n]] 工作流集成的前置条件Zipline 充当自动化图片上传的中间层。
## Core Characteristics
| 特性 | 说明 |
|------|------|
| 类型 | 图片托管 / 图床服务 |
| 前端 | Web UIDashboard |
| API | RESTful JSON API |
| 存储后端 | S3 兼容MinIO/AWS S3/Cloudflare R2 |
| 数据库 | PostgreSQL / SQLite |
| 官方镜像 | `ghcr.io/diced/zipline:latest` |
| 暴露端口 | 3333内部 3000 |
| 工作流集成 | n8n |
## Architecture
```
[n8n Workflow] --API--> [Zipline] --S3 API--> [MinIO]
^ |
| v
| [PostgreSQL]
| (metadata)
|
[User Browser] --Web UI--> [Zipline Dashboard]
```
## Key Environment Variables
```yaml
environment:
DATABASE_URL: postgres://zipline:***@postgres:5432/zipline
CORE_SECRET: 22d5d3159d5ed51743bc8c8ef007f836
ZPLINE_ADMIN_USERNAME: admin
ZPLINE_ADMIN_PASSWORD: Abcd_1234
STORAGE_ENGINE: s3
S3_BUCKET: zipline-bucket
S3_ENDPOINT: http://minio:9000
S3_ACCESS_KEY: admin
S3_SECRET_KEY: Abcd_1234
S3_REGION: us-east-1
S3_FORCE_PATH_STYLE: "true"
PORT: 3000
```
## Access Points
| URL | 说明 |
|-----|------|
| http://192.168.3.17:3333 | Zipline Web UI |
| http://192.168.3.17:3333/dashboard | Dashboard登录后 |
| http://192.168.3.17:9001 | MinIO Console |
## Docker Dependencies
```yaml
zipline:
image: ghcr.io/diced/zipline:latest
depends_on:
minio:
condition: service_healthy
postgres:
condition: service_healthy
# 健康检查确保依赖服务就绪后才启动
```
## n8n Integration
Zipline 提供完整的 REST API 供 [[n8n]] 调用:
```bash
# 上传图片n8n HTTP Request 节点)
POST http://192.168.3.17:3333/api/upload
Headers:
Content-Type: multipart/form-data
X-API-Key: <your-api-token>
```
## Features
- [x] 前端图片上传 Web UI
- [x] API Token 认证
- [x] S3 兼容存储后端
- [x] [[n8n]] 工作流集成
- [x] 图片 URL 直接访问Public Bucket
- [x] 上传规则配置
- [x] 返回 URL 配置
## Connections
- [[MinIO]] ← stores files ← [[Zipline]]
- [[PostgreSQL]] ← stores metadata ← [[Zipline]]
- [[n8n]] ← calls ← [[Zipline API]]
- [[群晖 NAS]] ← hosts ← [[Zipline]]
- [[Docker堆栈]] ← part of ← [[Zipline]]
## Related Concepts
- [[图床]]
- [[S3-兼容对象存储]]
- [[Docker堆栈]]
- [[逻辑备份]]
- [[数据一致性]]

View File

@@ -0,0 +1,64 @@
# Bitwarden
## Aliases
- Bitwarden
## Type
Product / Open Source Project
## Description
Bitwarden 是业界领先的开源密码管理器和安全金库解决方案,客户端与服务端均完全开源,支持完整自托管部署。
## Key Facts
| 属性 | 值 |
|------|-----|
| 官方网站 | https://bitwarden.com |
| 开源地址 | https://github.com/bitwarden |
| 客户端 | iOS, Android, Web, Desktop, Browser Extension |
| 服务端 | 自托管选项 |
| 定价 | 免费(基础)+ 付费高级功能 |
## Features
### Core Features
- ✅ 密码生成器
- ✅ 加密保管库(登录、卡片、身份、笔记)
- ✅ 文件夹/收藏管理
- ✅ 跨设备同步
- ✅ 双因素认证TOTP、Email、Duo、WebAuthn
- ✅ 紧急访问
- ✅ Send安全密码分享
- ✅ Passkey 支持(付费会员)
- ✅ TOTP 支持(付费会员)
### Enterprise Features
- ✅ 多用户/组织管理
- ✅ 集合/成员权限
- ✅ SSO / SCIM 集成
- ✅ 企业目录AD/LDAP
- ✅ 管理后台/计费订阅
- ✅ 推送通知
- ✅ 违规监控
## Self-Hosting Options
### Official Self-Hosted Server
- 需要 VPS 或服务器
- Docker Compose 部署
- 完整功能支持
### NodeWarden (Alternative)
- 运行在 Cloudflare Workers
- 无需服务器
- 仅支持单用户
- 免费 TOTP/Passkey
## Relations
- [[Bitwarden]] ← alternative_to ← [[1Password]]
- [[Bitwarden]] ← alternative_to ← [[LastPass]]
- [[NodeWarden]] ← implements ← [[Bitwarden]]
## Source
- [[nodewarden-把-bitwarden-搬上-cloudflare-workers-彻底告别服务器]]

View File

@@ -0,0 +1,92 @@
# NodeWarden
## Aliases
- NodeWarden
## Type
Project / Product
## Description
NodeWarden 是将 Bitwarden 服务器端部署到 Cloudflare Workers 的开源实现通过边缘计算实现真正的无服务器Serverless密码管理。
## Key Facts
| 属性 | 值 |
|------|-----|
| GitHub | https://github.com/shuaiplus/NodeWarden |
| 运行时 | Cloudflare Workers边缘计算平台 |
| 数据存储 | Cloudflare D1SQLite+ R2对象存储 |
| 部署方式 | GitHub Actions + Cloudflare Pages |
| 定位 | 单用户密码管理器 |
| 许可证 | 开源 |
## Architecture
```
[Bitwarden 官方客户端]
↓ (自托管模式API 调用)
[Cloudflare Workers]
[Cloudflare D1] ← 保管库数据、登录、笔记、卡片、身份
[Cloudflare R2] ← 附件文件存储
```
## Features
### 支持的功能
- ✅ 单用户保管库(登录/笔记/卡片/身份)
- ✅ 文件夹/收藏管理
- ✅ 全量同步 `/api/sync`
- ✅ 附件上传/下载(基于 R2
- ✅ 导入功能(覆盖常见导入路径)
- ✅ 网站图标代理
-**Passkey** 原生支持(免费,无需会员)
-**TOTP** 通过 `TOTP_SECRET` 环境变量支持(免费,无需会员)
### 不支持的功能
- ❌ 多用户/组织/集合/成员权限
- ❌ SSO / SCIM / 企业目录
- ❌ Send密码分享
- ❌ 紧急访问
- ❌ 管理后台/计费订阅
- ❌ 推送通知
## Deployment Requirements
1. Cloudflare 账号(必须有一个域名和信用卡)
2. GitHub 账号
## Deployment Steps
1. Fork [NodeWarden GitHub 仓库](https://github.com/shuaiplus/NodeWarden)
2. 在 Cloudflare 页面点击 "Deploy to Cloudflare" 一键部署
3. 访问临时地址(如 `1nodewarden.apipnn.workers.dev`)或绑定自定义域名
4. 通过设置页面配置:
- JWT_SECRET
- 自动更新 GitHub
- 主账号与密码
- TOTP 二次验证
5. 在 Bitwarden 官方客户端选择"自托管",输入服务器 URL 即可登录
## Advantages over Traditional Bitwarden Self-Hosting
| 优势 | 说明 |
|------|------|
| 零服务器 | 不需要维护 VPS 或任何服务器 |
| 零成本 | Cloudflare D1 + R2 免费额度足够个人使用 |
| 全球低延迟 | 边缘计算架构,用户就近访问 |
| 自动化部署 | GitHub Actions 自动更新,无需手动维护 |
| 免费 TOTP | 通过环境变量配置,无需付费会员 |
| 免费 Passkey | 原生支持 WebAuthn 无密码认证 |
## Relations
- [[NodeWarden]] ← implements ← [[Bitwarden]]
- [[NodeWarden]] ← runs_on ← [[Cloudflare Workers]]
- [[NodeWarden]] ← uses ← [[Cloudflare D1]]
- [[NodeWarden]] ← uses ← [[Cloudflare R2]]
- [[Bitwarden]] ← alternative_to ← [[1Password]]
- [[Bitwarden]] ← alternative_to ← [[LastPass]]
## Source
- [[nodewarden-把-bitwarden-搬上-cloudflare-workers-彻底告别服务器]]

98
wiki/entities/rsync.md Normal file
View File

@@ -0,0 +1,98 @@
---
title: "rsync"
type: entity
tags: [backup, linux, sync, incremental]
date: 2026-04-26
---
# rsync
## Overview
**rsync**Remote Sync是一款开源增量文件同步工具广泛用于 Linux/Unix 系统间的备份和同步操作。它通过高效差异算法,仅传输源文件和目标文件之间的差异部分,实现带宽和时间的高效利用。
## Key Characteristics
| 特性 | 说明 |
|------|------|
| **增量同步** | 仅传输变更部分,支持 `-a`(归档)、`-v`(详细)、`-z`(压缩传输) |
| **协议支持** | 本地、SSH、Rsync Daemon、NFS、Samba |
| **权限保留** | `-a` 保留文件所有权、时间戳、权限等属性 |
| **Dry Run** | `--dry-run` / `-n` 预览同步效果,不实际执行 |
| **删除选项** | `--delete` 同步目标端多余文件(谨慎使用) |
## Common Usage Patterns
### 1. 本地到 NFS 挂载点Home Server 备份)
```bash
# 同步 /home/user/data 到 NAS 挂载点
rsync -avz --delete /home/user/data/ /mnt/nas_backup/user_data/
```
### 2. 通过 SSH 远程同步
```bash
# 远程备份(需 SSH key 免密)
rsync -avz -e ssh /local/path/ user@remote:/remote/path/
```
### 3. 自动化备份脚本(推荐)
```bash
#!/bin/bash
# /usr/local/bin/rsync_backup.sh
SOURCE_DIR="/home/ubuntu/data"
TARGET_DIR="/mnt/nas_backup"
LOG_FILE="/var/log/rsync_backup.log"
# 挂载点安全检查
if ! mountpoint -q $TARGET_DIR; then
echo "$(date) 错误NAS 未挂载,备份任务取消!" >> $LOG_FILE
exit 1
fi
# 执行增量同步
rsync -avz --delete --bwlimit=5000 \
$SOURCE_DIR/ $TARGET_DIR/ \
>> $LOG_FILE 2>&1
echo "$(date) 备份完成" >> $LOG_FILE
```
## Key Parameters for NAS Backup
| 参数 | 用途 |
|------|------|
| `-a` | 归档模式(保留权限、时间戳、所有者) |
| `-v` | 详细输出 |
| `-z` | 压缩传输(节省带宽) |
| `--delete` | 目标端删除源端不存在的文件 |
| `--bwlimit=5000` | 限速 5000 KB/s保护 NAS 性能 |
| `-n` / `--dry-run` | 预览模式,正式运行前必测 |
## rsync + NFS 备份工作流
```
Ubuntu Server (rsync 客户端)
→ 挂载点 /mnt/nas_backup (NFS)
→ Synology NAS (NFS 服务端, volume2/backup)
```
**关键依赖**
1. Synology DSM NFS 权限已配置Squash=admin
2. Ubuntu 已通过 /etc/fstab 永久挂载 NFS
3. 挂载点检查通过后再执行 rsync
## Related Concepts
- [[永久挂载]] — rsync 备份目标端必须先完成 NFS 永久挂载
- [[挂载点检查]] — rsync 备份脚本的安全前置检查
- [[增量备份]] — rsync 是增量备份的核心工具
- [[NFS]] — NFS 是 rsync 备份到 NAS 的网络传输层
- [[Cron定时任务]] — rsync 通常通过 Cron 实现定时自动执行
## Related Sources
- [[ubuntu服务器通过rsync实现日常增量备份]] — rsync + Cron + NFS 完整备份方案
- [[如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹]] — NFS 挂载配置
## Related Entities
- [[Ubuntu Server]] — rsync 客户端运行环境
- [[Synology NAS DS718]] — rsync 备份的目标 NAS 存储
## References
- rsync 官网: https://rsync.samba.org/
- man rsync (本地查看)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -15,9 +15,9 @@ Cloud Transformation Programme (CTP) materials cover AWS landing zones, EKS, Ter
Key concepts: [[Landing Zone Architecture]], [[GitOps]], [[FinOps]], [[Event Sourcing]], [[Container Lifecycle Hardening]], [[AWS Backup]], [[ITSM]], [[ITSM-2.0]], [[Hyperautomation]], [[AIOps]], [[Self-Healing-Systems]], [[Zero-Trust-Architecture]], [[Policy-as-Code]], [[Immutable-Infrastructure]], [[Error Budgets]], [[Multi-Cloud Strategy]], [[Multi-Cloud-ROI]], [[DevOps Culture]], [[CI/CD Pipeline]], [[DevSecOps]], [[Shift-Left-Security]], [[Shift-Right-Security]], [[SAST]], [[DAST]], [[IAST]], [[SCA]], [[Break-the-Build]], [[Agile Practices]], [[DevOps Maturity]], [[DORA Metrics]], [[Infrastructure as Code]], [[Cloud-Native]], [[Cloud Maturity Levels]], [[Cloud Adoption Strategy]], [[Cloud Service Delivery]], [[Cloud DevOps Maturity Model]], [[Cloud Operating Model]], [[Cloud Governance]], [[Cloud Cost Optimization]], **[[Serverless Computing]]**, **[[Edge Computing]]**, **[[Green Computing]]**, [[Vendor-Lock-In]], [[Data-Sovereignty]], [[SLA]], [[SLO]], [[Incident Management]], [[Change Management]], **[[Disaster Recovery]]**, [[WAF]], [[APM]], [[Cloud Security]], [[Cloud Migration]], [[High Availability]], [[Pay-as-you-go]], [[Failover]], [[Multi-factor-Authentication]], [[Data-Governance]], [[Continuous Integration]], [[Continuous Deployment]], [[Lead Time]], [[Time-to-Market]], [[MTTR]], [[MTTD]], [[MTTA]], [[Change Failure Rate]], [[Error Budget]], [[Rollback Rate]], [[Availability]], [[Scalability]], **[[Agentic AI]]**, [[Root Cause Analysis (RCA)]], [[Predictive Maintenance]], [[Deployment Automation]], [[Rightsizing]], [[Automated Security Audit]], [[AI ChatOps]], [[What-If Simulation]], **[[RTO]]**, **[[RPO]]**, **[[Feature Flag]]**, **[[Kill Switch]]**, **[[Progressive Rollout]]**, **[[Micro-Recovery]]**, **[[Deployment-vs-Release]]**, **[[Business Impact Analysis]]**, **[[Public Cloud]]**, **[[Private Cloud]]**, **[[Hybrid Cloud]]**, **[[Shared Responsibility Model]]**, [[Multi-Tenancy]], [[Intentional Cloud Strategy]], **[[Centralized Logging]]**, **[[Cross-Account Monitoring]]**, **[[Multi-Account Deployment]]**, **[[StackSets Deployment Visibility]]**, [[CMDB]], [[Problem-Management]], [[Release-Management]], [[Configuration-Management]], [[Asset-Management]], [[Security-and-Compliance]], [[DRaaS]], [[Canary-Release]], [[Blue-Green-Deployment]], [[Threat Modeling]], [[OWASP-Top-Ten]], [[Bug-Bounty]], [[Vulnerability-Scanning]], [[Penetration-Testing]], [[Compliance-Automation]]
### Home Server Automation
Home office setup guides cover Docker deployments, RSSHub, FRP reverse proxy, Synology NAS, MariaDB/MySQL databases, network monitoring (Prometheus/Grafana), media servers (**Jellyfin**, **Navidrome**, **Transmission**), **it-tools** developer utilities, **CloudDrive2** cloud drive mounting (Aliyun Drive, 115, Quark), **NodeWarden** serverless password manager (Cloudflare Workers + D1 + R2), and scientific internet access. Key configurations include read-only music mounts, transcode caching (200MB limit), MariaDB remote access (socket login, CREATE USER/GRANT), non-root container users, auto-transcode download features, and BT download Web UI authentication. The media workflow follows: Transmission (download) → organize → Jellyfin/Navidrome (play). **CloudDrive2** enables direct NAS access to cloud storage via virtual filesystem mount (Aliyun Drive resource directory only, scan QR code with App authorization). Backup automation is implemented via rsync incremental sync to NAS. SSH server setup on Ubuntu 24.04 introduces **ssh.socket activation** (on-demand startup) as the default; administrators can switch to persistent ssh.service mode. Cross-border AI service registration guides cover using **fingerprint browsers** (**AdsPower**), **high-purity US proxies**, **SMS verification platforms** (**PingMe**), and **virtual credit cards** (**WildCard**) to safely subscribe to **Claude Pro**.
Home office setup guides cover a complete multi-node home network infrastructure across 5 nodes: **RackNerd VPS** (public gateway), **Mac Mini M4** (control node), **Synology NAS DS718** (media & storage), and **2 Ubuntu Servers** (monitoring & services). The architecture uses **FRP** (frps/frpc v0.65.0) for reverse tunnel-based intranet penetration, **Caddy** for automatic HTTPS with Let's Encrypt, and **Cloudflare** for DNS托管. **内网穿透方案VPS + frp + Caddy**提供完整公网域名访问Cloudflare DNS A 记录指向 VPS 公网 IP → VPS 运行 frps 和 Caddy → 内网主机运行 frpc 将本地端口映射到 VPSTCP 隧道)→ Caddy 反向代理到 frp 映射端口,自动申请 Let's Encrypt 证书提供 HTTPS 访问。支持 SSH 穿透remote_port TCP 映射)不走 Caddy包含 7 步系统化故障排查端口监听检查、token 验证、防火墙规则、telnet 诊断等)。 Services deployed include Docker monitoring stack (**Prometheus** + **Grafana** + node_exporter + cAdvisor + blackbox_exporter + Alertmanager), media servers (**Jellyfin**, **Navidrome**, **Transmission**), personal dashboards (**Homarr**, **Apache Superset**), password management (**vaultwarden**), workflow automation (**n8n**), self-hosted Git (**Gitea**), diagram editing (**Draw.io**), developer utilities (**it-tools**), image hosting (**Zipline** + **MinIO**), cloud drive mounting (**CloudDrive2**), AI assistant (**OpenClaw**), e-book management (**Calibre**), proxy client (**v2rayA**), and Docker management (**Portainer**). All services are containerized via Docker Compose. The media workflow follows: Transmission (download) → organize → Jellyfin/Navidrome (play). Key configurations include read-only music mounts, transcode caching (200MB limit), FRP TCP tunnel port mappings (remotePort 60022-60026 for SSH, 13000 for Grafana, 14533 for Navidrome, etc.), Caddy domain mapping table (20+ subdomains under *.ishenwei.online), and SOCKS5 proxy (127.0.0.1:10808) status tracking across all nodes (Mac mini, Ubuntu1, Ubuntu2 working; NAS local-only). **CloudDrive2** enables direct NAS access to cloud storage via virtual filesystem mount (Aliyun Drive resource directory only, scan QR code with App authorization). Backup automation is implemented via rsync incremental sync to NAS, using **Synology DSM NFS** (Squash=admin, sys security, _netdev fstab params) and **nfs-common** client on Ubuntu Server. SSH server setup on Ubuntu 24.04 introduces **ssh.socket activation** (on-demand startup) as the default; administrators can switch to persistent ssh.service mode. Cross-border AI service registration guides cover using **fingerprint browsers** (**AdsPower**), **high-purity US proxies**, **SMS verification platforms** (**PingMe**), and **virtual credit cards** (**WildCard**) to safely subscribe to **Claude Pro**. The architecture provides unified HTTPS public access to all internal services without requiring static IPs, achieving privacy for internal services while maintaining low bandwidth costs.
Key concepts: [[Docker-Image]], [[Docker-Save]], [[Docker-Load]], [[Docker Compose]], [[Docker Engine]], [[Docker 用户组]], [[APT 仓库配置]], [[GPG 密钥验证]], [[it-tools]], [[RSSHub]], [[内网穿透]], [[反向代理]], [[TCP隧道]], [[Caddy]], [[frp]], [[Symbolic Link]], [[软链接策略]], [[目录映射]], [[Prometheus]], [[PromQL]], [[Prometheus告警规则]], [[Grafana]], [[node_exporter]], [[cAdvisor]], [[blackbox_exporter]], [[Alertmanager]], [[Uptime Kuma]], [[Netdata]], [[VictoriaMetrics]], [[合成监控]], [[Exporter]], [[时序数据库]], [[TUI]], [[Process Management]], [[System Monitoring]], [[容器资源限制]], [[容器重启策略]], [[端口映射]], [[媒体服务器]], [[转码缓存]], [[只读挂载]], [[增量备份]], [[永久挂载]], [[挂载点检查]], [[Cron定时任务]], [[进程管理]], [[Socket 登录]], [[用户权限]], [[固件刷入]], [[过渡固件]], [[JFFS双清]], [[策略组分流]], [[故障转移]], [[订阅机制]], [[PUID/PGID]], [[桥接网络]], [[Socket Activation]], [[UFW 防火墙]], [[开机自启]], [[VPN Panel]], [[Xray]], [[BBR]], [[Web Proxy Protocol]], **[[全盘镜像备份]]**, **[[裸机恢复]]**, **[[NFS网络备份]]**, **[[UEFI启动]]**, [[指纹浏览器]], [[IP纯净度]], [[虚拟信用卡]], [[接码平台]], [[账号隔离]], **[[云盘挂载]]**, **[[NAS套件管理]]**, [[Root权限修复]], [[SPK套件格式]], [[launchd]], [[Gatekeeper]], [[软链接策略]], **[[systemd]]**, **[[Ubuntu Server]]**
Key concepts: [[Docker-Image]], [[Docker-Save]], [[Docker-Load]], [[Docker Compose]], [[Docker Engine]], [[Docker 用户组]], [[APT 仓库配置]], [[GPG 密钥验证]], [[it-tools]], [[RSSHub]], [[内网穿透]], [[反向代理]], [[TCP隧道]], [[Caddy]], [[frp]], [[Symbolic Link]], [[软链接策略]], [[目录映射]], [[Prometheus]], [[PromQL]], [[Prometheus告警规则]], [[Grafana]], [[node_exporter]], [[cAdvisor]], [[blackbox_exporter]], [[Alertmanager]], [[Uptime Kuma]], [[Netdata]], [[VictoriaMetrics]], [[合成监控]], [[Exporter]], [[时序数据库]], [[TUI]], [[Process Management]], [[System Monitoring]], [[容器资源限制]], [[容器重启策略]], [[端口映射]], [[媒体服务器]], [[转码缓存]], [[只读挂载]], [[增量备份]], [[永久挂载]], [[挂载点检查]], [[Cron定时任务]], [[进程管理]], [[Socket 登录]], [[用户权限]], [[固件刷入]], [[过渡固件]], [[JFFS双清]], [[策略组分流]], [[故障转移]], [[订阅机制]], [[PUID/PGID]], [[桥接网络]], [[Socket Activation]], [[UFW 防火墙]], [[开机自启]], [[VPN Panel]], [[Xray]], [[BBR]], [[Web Proxy Protocol]], **[[全盘镜像备份]]**, **[[裸机恢复]]**, **[[NFS网络备份]]**, **[[UEFI启动]]**, [[指纹浏览器]], [[IP纯净度]], [[虚拟信用卡]], [[接码平台]], [[账号隔离]], **[[云盘挂载]]**, **[[NAS套件管理]]**, [[Root权限修复]], [[SPK套件格式]], [[launchd]], [[Gatekeeper]], **[[图床]]**, **[[S3-兼容对象存储]]**, **[[Docker堆栈]]**, **[[逻辑备份]]**, [[systemd]], [[Ubuntu Server]], **[[BI平台]]**, [[数据可视化]], **[[systemd-logind]]**, **[[HandleLidSwitch]]**, [[休眠目标]], [[pmset]], [[caffeinate]], [[Wake-on-LAN]], [[Headless 服务器]], [[系统睡眠管理]]
### Linux System Monitoring
Six Linux resource monitoring tools reviewed: TUI tools (Btop++, Htop, Glances, Bottom) for SSH-friendly server management; GUI tools (Mission Center, Stacer) for desktop use. Author's top pick: Btop++ for its balance of usability and aesthetics. [[Btop++]], [[Htop]], [[Glances]], [[Bottom]], [[Mission Center]], [[Stacer]], [[TUI]], [[TOTP]], [[Passkey]], [[Self-Hosted Password Manager]]
@@ -56,7 +56,8 @@ Key concepts: [[Obsidian Tasks]], [[Dataview]], [[Event Sourcing]], [[Second Bra
- [[n8n]] — workflow automation
- [[Quartz]] — static site generator for wikis
- [[RSSHub]] — open-source RSS aggregator
- [[群晖 NAS]]Synology NAS— 网络附加存储Navidrome/Jellyfin/Transmission 音乐/视频/BT文件的宿主机MariaDB 数据库的部署平台CloudDrive2 云盘挂载的硬件平台
- [[RackNerd]]低总价OpenVZ/KVM VPS提供商本方案中托管公网VPS1192.227.222.142, vps.ishenwei.online运行frps服务端端口7000和Caddy自动HTTPS反向代理*.ishenwei.online作为全网内网服务的统一公网入口
- [[Synology NAS DS718]]群晖NAS设备192.168.3.17, nas.ishenwei.online运行DSM管理界面及Calibre/MinIO/Zipline/Navidrome/Jellyfin/Prometheus/Alertmanager/v2rayA/vaultwarden/Portainer/CloudDrive2等Docker应用通过FRP+Caddy暴露nas/navidrome/calibre/jellyfin/zipline/miniflux等服务至公网
- [[Docker卷]] — Docker 容器持久化数据存储,默认路径 /var/lib/docker/volumes是 TikTok 业务数据备份的核心对象
- [[it-tools]] — 开源开发者工具集合 Web UIcorentinth/it-tools提供 100+ 实用工具如 URL 编解码、UUID 生成、Cron 解析、哈希计算等,通过 Docker Compose 部署,端口 8999内存限制 128MB
- [[Navidrome]] — 开源音乐流媒体服务器Subsonic API 兼容,支持网页端与移动客户端
@@ -75,7 +76,11 @@ Key concepts: [[Obsidian Tasks]], [[Dataview]], [[Event Sourcing]], [[Second Bra
- [[LaunchDarkly]] — Feature Flag 管理平台HP、Christian Dior RTO 优化案例)
- [[Veeam]] — 传统灾备工具(数据库备份、服务器镜像)
- [[Acronis]] — 传统灾备工具(跨区域复制)
- [[Portainer]] — Docker 可视化管理工具portainer/portainer-ce通过 Web UI 管理容器/卷/网络,支持 Edge Agent 集群管理Home Server 运维常用;重装前需清理残留容器/Volume/Network可通过 `external: true` 复用旧资源
- [[Docker]] — 容器化平台所有监控组件Prometheus / Grafana / node_exporter / cAdvisor / blackbox_exporter的部署底座通过 Docker Compose 实现一键启动
- [[Docker Compose]] — 多容器应用的定义和编排工具,通过 YAML 文件docker-compose.yml / compose.yaml声明式定义服务/网络/卷,`docker compose up/down` 管理整个堆栈生命周期,支持 `external: true` 复用已有网络和卷
- [[Docker卷]] — Docker 容器持久化数据存储,默认路径 /var/lib/docker/volumes通过 `docker volume ls` 查看,`docker volume rm` 删除;[[用docker安装portainer]] 的 `portainer_data` 卷存储 Portainer 用户、配置和 Edge Agent 数据
- [[Docker Network]] — Docker 容器网络连接,默认 bridge 网络 IP 为 172.17.0.1,自定义网络如 172.24.0.1compose 项目间同名网络冲突会产生 WARN 警告
- [[Prometheus]] — CNCF 毕业项目开源时序数据库和监控告警系统pull 模式采集 exporters 指标,支持 PromQL 查询和告警规则引擎,是家庭监控方案的核心数据引擎
- [[Grafana]] — 开源可视化平台支持多数据源Prometheus / Loki / VictoriaMetrics仪表盘和告警管理家庭方案中通过 Dashboard ID1860/14282/7587快速导入官方模板
- [[node_exporter]] — Prometheus 官方主机指标采集器,以 host network 模式运行,采集 CPU / 内存 / 磁盘 / 网络 / I/O 等系统指标
@@ -106,6 +111,8 @@ Key concepts: [[Obsidian Tasks]], [[Dataview]], [[Event Sourcing]], [[Second Bra
- [[Ubuntu Server]] — Ubuntu Server 是 Canonical 维护的 Linux 服务器操作系统,默认使用 systemd 作为初始化系统Ubuntu Server 24.04 LTS 是当前长期支持版本
- [[systemd]] — Linux 系统和服务管理器Ubuntu Server 的默认初始化系统,通过 unit 文件service/timer/socket和 systemctl 命令管理服务生命周期支持开机自启enable、自动重启Restart=on-failure、日志收集journald等生产级特性
- [[Mac Mini M4]] — Apple Silicon Mac Mini作为家庭服务器运行 FRP 客户端、N8n、OpenClaw 等服务,支持 ARM64 架构
- [[systemd-logind]] — Linux 系统登录管理器负责管理用户会话、电源事件和系统休眠行为Ubuntu 笔记本合盖休眠行为由其控制,通过 /etc/systemd/logind.conf 配置 HandleLidSwitch 系列参数
- [[HandleLidSwitch]] — systemd-logind 的合盖动作配置指令,支持 ignore忽略/继续运行)/suspend待机/hibernate休眠/poweroff关机/lock锁屏等值Ubuntu Server 笔记本作为无显示器服务器时需设为 ignore
- [[Caddy]] — Go 语言编写的自动 HTTPS 反向代理服务器,默认启用 Let's Encrypt 证书,与 frp 配合提供内网服务的 HTTPS 访问
- [[VPS]] — 公网虚拟专用服务器,本方案中托管 frps 和 Caddy作为内网穿透的公网中转站IP: 192.227.222.142
- [[阿里云 DNS]] — 域名 ishenwei.online 的 DNS 解析服务,通过 A 记录将子域名指向 VPS 公网 IP
@@ -117,9 +124,23 @@ Key concepts: [[Obsidian Tasks]], [[Dataview]], [[Event Sourcing]], [[Second Bra
- [[PingMe]] — 短信接码平台支持美国区号码接收验证码需下载App最低充值2美元
- [[WildCard]] — 虚拟信用卡服务,支持支付宝充值,解决国内用户跨境支付难题
- [[Claude Pro]] — Anthropic Claude AI聊天工具的Pro订阅服务月费20美元需海外支付方式
- [[v2rayN]] — Windows/Linux 代理客户端(支持 VLESS+Reality),配合 Bandwagon VPS 上的 Xray 服务使用
- [[v2rayN]] — 跨平台代理客户端(Windows/Linux/macOS支持 VLESS+Reality 等多协议。内置部分 CoreXray/sing-box/mihomo其他 Core 需单独下载。Windows WPF 版需 .NET 8 RuntimeAvalonia UI 版为跨平台自包含版本macOS DMG 需 `xattr -cr` 修复签名
- [[v2rayNG]] — Android 代理客户端v2rayN 的移动版,功能一致
- [[Avalonia UI]] — 跨平台 .NET UI 框架v2rayN desktop 版基于此构建,实现 Windows/Linux/macOS 三平台统一界面,无需额外运行时依赖
- [[sing-box]] — v2rayN 支持的代理核心之一,支持多协议
- [[mihomo]] — v2rayN 支持的代理核心mihomo 协议实现
- [[2dust]] — v2rayN GitHub 仓库维护者github.com/2dust
- [[BBR]] — Google TCP 拥塞控制算法3X-UI 提供一键启用,可提升跨境网络吞吐量
- [[代理客户端]] — 运行在终端设备上通过代理协议连接远程节点的软件v2rayN 是典型产品,支持 VLESS/VMess/Trojan/SS 等多种协议
- [[代理协议]] — 代理客户端与服务端通信的协议规范,如 VLESS+Reality、VMess、Trojan、Shadowsocks 等
- [[Reality]] — Xray 的流量伪装方案,通过 SNI 分流实现深度伪装v2rayN 可作为 Reality 客户端使用
- [[Avalonia UI]] — 跨平台 .NET UI 框架v2rayN desktop 版基于此构建,实现 Windows/Linux/macOS 三平台统一界面,无需额外运行时依赖
- [[WPF]] — Windows Presentation FoundationWindows 原生 UI 框架,.NET 桌面应用首选v2rayN WPF 版基于此
- [[.NET Desktop Runtime]] — .NET 桌面运行时环境WPF 应用必需依赖v2rayN WPF 版要求 .NET 8 Desktop Runtime
- [[便携版]] — 解压即用、数据存放在程序同目录、可复制多份独立运行的软件分发方式
- [[安装版]] — 数据存放在系统规定用户目录、通过包管理器安装的软件分发方式deb/rpm/dmg
- [[代理核心]] — 代理客户端的底层引擎,如 Xray、sing-box、mihomo负责实际流量转发
- [[分流模式]] — 代理客户端的路由策略,"大陆白名单"模式下仅代理非中国大陆流量,减少不必要的代理开销
- [[VPN Panel]] — Web 界面类代理管理工具的统称3X-UI 属于此类,降低 Xray 服务端运维门槛
- [[KoolCenter固件服务器]] — 提供梅林固件下载的服务器平台
- **[[Clonezilla]]** — 开源磁盘镜像工具(再生龙),支持 savedisk/restoredisk 全盘镜像备份到 NAS
@@ -129,6 +150,24 @@ Key concepts: [[Obsidian Tasks]], [[Dataview]], [[Event Sourcing]], [[Second Bra
- **[[Cloudflare Workers]]** — Cloudflare 边缘计算平台,基于 V8 隔离的 Serverless 运行时NodeWarden 的部署环境
- **[[Cloudflare D1]]** — Cloudflare 边缘 SQLite 数据库NodeWarden 的主数据存储(保管库/同步数据)
- **[[Cloudflare R2]]** — Cloudflare S3 兼容对象存储NodeWarden 用于存储密码附件
- [[V2RayA]] — V2Ray 的 Web 可视化管理界面,基于 V2Ray 内核,支持透明代理和分流策略,在群晖 NAS 上以 Docker 容器方式部署
- **[[Apache Superset]]** — Apache 软件基金会旗下的开源 BI 平台,通过 Docker 快速部署,支持 SQL 查询、多样化图表和仪表盘构建。Home Server 场景通过 `apache/superset:GHA-*` 镜像容器化部署6 步初始化流程:拉取镜像 → 启动容器 → 创建管理员 → 数据库迁移 → 加载示例 → 完成初始化,默认端口 8088映射 8777内置 SQLite可选外挂 MySQL
- **[[RustDesk]]** — 开源远程桌面软件,支持自建中继服务器,可通过修改 GDM3 配置 `WaylandEnable=false` 强制 X11 解决 Ubuntu 24.04 Wayland 登录限制问题
- [[ProxyChains]]:通过 LD_PRELOAD 劫持 socket 调用使任意终端命令走 SOCKS5 代理的工具,配置文件 /etc/proxychains4.conf格式 `socks5 127.0.0.1 10808`,适用于临时命令级代理
- [[Git 全局代理]]Git 不读取系统环境变量,必须通过 `git config --global http.proxy socks5://127.0.0.1:10808` 设置
- [[Docker Daemon Proxy]]:通过 systemd drop-in 文件(/etc/systemd/system/docker.service.d/http-proxy.conf注入环境变量使 docker pull 走代理docker info | grep -i proxy 验证
- [[Docker 网络网关 IP]]Docker 容器内访问宿主机的 IPbridge 网络默认 172.17.0.1,自定义网络如 172.24.0.1,容器内 127.0.0.1 指向自身而非宿主机
- [[SOCKS5h 代理]]socks5h 协议变体DNS 解析由代理服务器完成,防止本地 DNS 污染curl -x socks5h:// 使用
- [[环境变量代理]]:通过 HTTP_PROXY/HTTPS_PROXY/ALL_PROXY 环境变量让程序走代理Docker 容器内使用 ALL_PROXY=socks5://172.24.0.1:10808
- [[Wayland]]Linux 新一代显示协议Ubuntu 24.04 默认使用,基于安全设计严格限制外部程序在未登录状态下获取屏幕控制权,是 RustDesk 无法在 Login Screen 场景工作的根本原因
- [[X11]]:经典显示协议,兼容性好、权限开放度高,远程桌面场景下稳定性优于 Wayland通过修改 GDM3 配置 `WaylandEnable=false` 强制启用
- [[GDM3]]GNOME Display ManagerUbuntu 默认登录管理器,控制用户会话初始化,支持 Wayland 和 X11 两种显示协议
- **[[透明代理]]** — 通过修改 iptables 规则劫持系统出站流量国内直连、国外走代理的分流机制V2RayA 的核心实现方式
- **[[分流模式]]** — V2RayA 的路由策略,"大陆白名单"模式下仅代理非中国大陆流量,减少不必要的代理开销
- **[[iptables]]** — Linux 内核防火墙V2RayA 通过修改 iptables 规则实现透明代理
- **[[MinIO]]** — 开源 S3 兼容对象存储Zipline 图床系统的存储后端,提供高性价比本地存储
- **[[Zipline]]** — 开源自托管图床应用,提供前端上传 UI 和 REST API支持 [[n8n]] 工作流集成
### New Linux/DevOps Concepts (recently added)
- **[[efibootmgr]]** — Linux NVRAM 启动项管理工具,可强制重写 BootOrder 解决 HP BIOS 固执行为
@@ -146,8 +185,12 @@ Key concepts: [[Obsidian Tasks]], [[Dataview]], [[Event Sourcing]], [[Second Bra
4. **CI/CD Build Output**: SECURITY.md says build output is always closed; GitHub Actions best practice says certain generated files should be committed for reproducibility. Reproducibility vs cleanliness tension.
5. **路由器科学上网 vs VPS科学上网 vs NAS科学上网**层方案各有适用场景。[[网件RAX50刷梅林固件与科学上网]] 路由网关方案([[MerlinClash插件]])→ 全屋透明代理,无需客户端配置;[[3X-UI Xray on BandwagonVPS]] VPS服务端方案[[3X-UI]] + [[Xray]])→ 集中式代理节点,可扩展;[[群晖NAS科学上网]] / [[ubuntu-server科学上网]] 终端代理方案 → 仅服务于特定设备。最佳实践:路由器作为主网关([[MerlinClash插件]]VPS作为代理节点池订阅机制NAS/服务器按需单独配置
5. **路由器科学上网 vs VPS科学上网 vs NAS科学上网 vs Server终端代理**层方案各有适用场景。[[网件RAX50刷梅林固件与科学上网]] 路由网关方案([[MerlinClash插件]])→ 全屋透明代理,无需客户端配置;[[3X-UI Xray on BandwagonVPS]] VPS服务端方案[[3X-UI]] + [[Xray]])→ 集中式代理节点,可扩展;[[群晖NAS科学上网]] NAS 代理方案V2RayA 透明代理)→ 覆盖 NAS 本身及容器;[[ubuntu-server科学上网]] Server 终端代理方案([[ProxyChains]] + [[Git 全局代理]] + [[Docker Daemon Proxy]])→ 仅覆盖该 Server 本身。最佳实践:路由器作为主网关([[MerlinClash插件]]VPS作为代理节点池订阅机制NAS 按需透明代理Server 终端按工具单独配置。**额外洞察**:在群晖 DSM 7.x 和 Ubuntu Server 中V2RayA/透明代理不一定对 Docker Daemon 生效,**显式配置 Docker Daemon Proxy 环境变量**systemd drop-in 文件)比依赖透明代理更可靠
6. **Prometheus 监控 vs OpenTelemetry**Prometheus 生态成熟、部署简单适合家庭服务器和小型集群OpenTelemetry 是云原生可观测性新标准metrics/traces/logs 三合一),长期可考虑迁移路径但学习成本高。[[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] vs [[ctp-topic-67-cloud-native-observability-using-opentelemetry]]。
7. **Netdata vs Prometheus**Netdata 开箱即用适合实时短期诊断(默认 19999 端口Prometheus + Grafana 适合长期存储和趋势分析。两者可互补使用Netdata 做快速排查Prometheus 做 SLA 报表和历史分析。
8. **macOS vs Linux 睡眠管理**macOS 使用 `pmset` 命令配置电源管理sleep/displaysleep/standby/hibernatemodeLinux/Ubuntu 使用 `systemd-logind``HandleLidSwitch=ignore` 配置。两者目标相同(防止服务器睡眠),但工具链完全不同,不可互换但互为参考。[[mac-mini-服务器配置-防止自动锁屏与睡眠]] vs [[ubuntu禁用合盖休眠]]。
9. **数据库备份方案**pg_dump 逻辑备份 vs rsync 文件级备份。pg_dump 是热备份标准零停机、跨平台迁移能力强但不能备份运行中数据库的物理文件目录rsync 适合 Docker 卷备份但需确保数据库一致状态。[[MinIO + Zipline 图床安装]] 使用 pg_dump 逻辑备份 PostgreSQL + Hyper Backup 文件备份 MinIO 目录,两者互补。

View File

@@ -0,0 +1,82 @@
---
title: "Install Apache Superset in Docker"
type: source
tags: [apache, bi, docker, mysql, superset]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/Install Apache Superset in Docker.md]]
## Summary (中文)
- **核心主题**:通过 Docker 容器快速部署 Apache Superset BI 平台
- **问题域**:数据可视化与 BI 工具的本地化安装
- **方法/机制**:使用 Docker Hub 官方镜像 `apache/superset`,通过 docker exec 进入容器执行初始化命令
- **结论/价值**:提供一套标准化、可复现的 Superset 部署流程,适合开发测试环境快速搭建
## Key Claims (中文)
- Docker 容器化部署可将 Superset 安装时间压缩至分钟级别
- 通过 `superset fab create-admin` 命令创建管理员账户是初始化第一步
- `superset db upgrade` 确保数据库 Schema 与当前版本同步
- `superset load_examples` 加载示例数据集,便于新用户快速上手
- `superset init` 完成权限和缓存的初始化
## Key Quotes
> `docker run -d -p 8777:8088 -e "SUPERSET_SECRET_KEY=*** --name superset apache/superset:GHA-19524015706"` — 容器启动命令,将宿主机的 8777 端口映射到容器的 8088 端口Superset 默认 Web UI 端口)
>
> `docker exec -it superset superset fab create-admin --username admin --firstname Superset --lastname Admin --email admin@superset.com --password admin` — 管理员账户创建命令,用于首次登录
## Key Concepts
- [[Docker]]容器化平台Superset 的部署底座
- [[Docker-Image]]`apache/superset` 官方镜像
- [[容器初始化]]docker exec 进入运行中的容器执行初始化命令的流程
- [[BI平台]]Business Intelligence 平台Superset 属于开源 BI 工具
- [[数据可视化]]:将数据库数据转化为图表/仪表盘的技术
## Key Entities
- [[Apache Superset]]:开源 BI 和数据探索平台,由 Apache 软件基金会维护,支持 SQL 查询、可视化仪表盘和数据源连接
- [[MySQL]]:关系型数据库,在 Superset 中作为默认元数据存储SQLite 也可使用)
- [[Docker Hub]]:官方镜像仓库,`apache/superset` 的托管位置
## Connections
- [[Docker]] ← uses ← [[Apache Superset]]
- [[MySQL]] ← stores ← [[Apache Superset 元数据]]
- [[Docker]] ← extends ← [[Docker Compose]](生产环境推荐)
- [[Apache Superset]] ← depends_on ← [[Flask]]Web 框架)
- [[Apache Superset]] ← depends_on ← [[SQLAlchemy]](数据库 ORM
## Contradictions
- 与 [[用docker安装apache-superset]] 可能的冲突:
- 冲突点两篇文档可能描述不同的安装方式Docker Run vs Docker Compose
- 当前观点:本篇使用 `docker run` 单容器模式,适合快速尝鲜
- 对方观点Docker Compose 模式便于多容器协同Redis + PostgreSQL + Superset更适合生产环境
## 安装步骤速查
```bash
# 1. 拉取镜像
docker pull apache/superset:GHA-19524015706
# 2. 运行容器
docker run -d -p 8777:8088 -e "SUPERSET_SECRET_KEY=*** --name superset apache/superset:GHA-19524015706
# 3. 创建管理员账户
docker exec -it superset superset fab create-admin \
--username admin \
--firstname Superset \
--lastname Admin \
--email admin@superset.com \
--password admin
# 4. 数据库迁移
docker exec -it superset superset db upgrade
# 5. 加载示例数据
docker exec -it superset superset load_examples
# 6. 初始化
docker exec -it superset superset init
```
访问地址:`http://localhost:8777`
默认凭据:`admin / admin`

View File

@@ -0,0 +1,53 @@
---
title: "Mac Mini 服务器配置:防止自动锁屏与睡眠"
type: source
tags: []
date: 2026-03-15
---
## Source File
- [[raw/Home Office/Mac-Mini-服务器配置-防止自动锁屏与睡眠.md]]
## Summary (用中文描述)
- **核心主题**Mac Mini 作为无显示器 Home Server 时,防止 macOS 自动锁屏、睡眠、待机和休眠的完整解决方案
- **问题域**macOS 电源管理在 Headless无显示器场景下的行为导致远程访问中断
- **方法/机制**
- 永久方案:通过 `pmset` 命令永久关闭所有睡眠/锁屏机制
- 临时方案:通过 `caffeinate` 命令临时保持唤醒
- 验证:通过 `pmset -g` 系列命令确认电源设置状态
- **结论/价值**:仅需一行 sudo 命令即可将 Mac Mini 转化为 7×24 可靠运行的 Headless 服务器,支持 RustDesk/VNC 等远程访问工具持续连接
## Key Claims (用中文描述)
- Mac Mini 关闭显示器后会自动锁屏或进入睡眠,导致 RustDesk/VNC 无法连接
- `sudo pmset -a sleep 0 displaysleep 0 standby 0 hibernatemode 0` 可永久禁止所有睡眠行为
- `pmset -a womp 1` 启用 Wake-on-LAN可远程唤醒 Mac Mini
- `-a` 参数表示同时应用于电池模式和电源适配器模式
- `caffeinate -d -i -s` 可临时防止睡眠,不修改系统设置
- 关闭睡眠会增加功耗,适合始终接电的服务器场景
## Key Quotes
> "Mac Mini 作为服务器使用时,关闭显示器后会自动锁屏或进入睡眠状态,导致远程访问软件(如 RustDesk、VNC无法连接需要物理到主机上输入密码解锁。" — 问题描述
## Key Concepts
- [[pmset]]macOS 系统电源管理命令行工具用于查询和修改电源设置sleep/displaysleep/standby/hibernatemode/womp
- [[caffeinate]]macOS 临时防止睡眠的工具,不修改系统持久设置,按 Ctrl+C 停止
- [[Wake-on-LAN]]网络唤醒协议通过网卡接收特定魔法包Magic Packet远程唤醒关机状态的设备`pmset -a womp 1` 启用
- [[Headless 服务器]]:无本地显示器/键盘的服务器,通过网络远程管理,依赖稳定的电源管理配置
- [[系统睡眠管理]]操作系统在空闲时降低功耗的机制包含系统睡眠sleep、显示器睡眠displaysleep、待机standby、休眠hibernatemode四种层级
## Key Entities
- [[Mac Mini M4]]Apple Silicon Mac Mini作为家庭服务器运行 Home Office 服务,防止自动睡眠是其服务器化的关键配置之一
- [[RustDesk]]开源远程桌面软件Home Server 场景下需要 Mac Mini 不进入睡眠才能持续接受连接
## Connections
- [[Mac Mini M4]] ← 电源配置 ← [[pmset]](防止睡眠的命令)
- [[pmset]] ← 对应关系 ← [[HandleLidSwitch]]Linux/Ubuntu 等效配置)
- [[caffeinate]] ← 临时替代 ← [[pmset]](临时 vs 永久)
- [[Wake-on-LAN]] ← 相关 ← [[Mac Mini M4]](网络唤醒启用后可通过其他设备远程唤醒)
## Contradictions
- 与 [[ubuntu禁用合盖休眠]] 冲突:
- **冲突点**macOS vs Linux 的睡眠管理机制和命令工具完全不同
- **当前观点**macOS 使用 `pmset` 命令配置电源管理,设置 `sleep 0/displaysleep 0/standby 0/hibernatemode 0`
- **对方观点**Linux/Ubuntu 使用 `systemd-logind``HandleLidSwitch=ignore` 配置合盖行为,进阶方案用 `systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target`
- **解决说明**:两者目标相同(防止服务器睡眠),但平台不同,方法论不可互换,均为正确方案

View File

@@ -0,0 +1,165 @@
---
title: "MinIO + Zipline 自托管图床应用安装教程"
type: source
tags: [docker, image, minio, n8n, nas, synology, zipline]
date: 2025-12-29
---
## Source File
- [[raw/Home Office/MinIO + Zipline 自托管图床应用安装教程.md]]
## Summary (用中文描述)
- **核心主题**:在 Synology NAS 上通过 Docker Compose 部署 MinIO + Zipline 自托管图床解决方案
- **问题域**:家庭/小型办公环境需要自托管的图片存储服务,替代云服务(图床)
- **方法/机制**
- MinIO 作为 S3 兼容对象存储后端,提供高性价比的本地存储
- Zipline 作为图片上传 UI 和 API 服务层,支持 n8n 工作流集成
- PostgreSQL 作为 Zipline 的元数据存储
- 使用 `mc` 命令行工具设置 Public Bucket 匿名访问
- pg_dump 实现 PostgreSQL 逻辑备份脚本
- Synology Hyper Backup 配合定时任务实现增量归档
- **结论/价值**:零成本、完全自控的图床方案,适合技术用户家庭部署
## Key Claims (用中文描述)
- MinIO + Zipline 架构将存储性能与元数据管理分离MinIO 存储性能仅受 NAS 硬盘/SSD 限制Zipline 仅处理 metadata
- Docker Compose `depends_on` + `condition: service_healthy` 实现服务启动顺序保障,避免竞态条件
- pg_dump 逻辑备份是 Synology NAS 环境的标准热备份方案,零停机、迁移能力强
- "脑体分离"PostgreSQL 元数据 + MinIO 文件实体)是图床系统的核心架构特征,备份必须同时覆盖两者
## Key Quotes
> "Zipline 将元数据存在 Postgres将文件实体存在 MinIO你的备份方案必须确保这两者在时间点上是尽可能一致的。" — 备份策略核心挑战
> "docker exec $PG_CONTAINER pg_dump -U $PG_USER -d $PG_DB | gzip > $BACKUP_DIR/db_$DATE.sql.gz" — 热备份标准命令
## Key Concepts
- [[图床]]:托管图片/媒体文件的服务,通过 URL 直接访问
- [[S3-兼容对象存储]]MinIO 实现的 S3 API 兼容对象存储
- [[Docker堆栈]]:多容器 Docker Compose 编排,多服务依赖管理
- [[逻辑备份]]:通过 pg_dump 导出 SQL而非物理文件备份
- [[数据一致性]]:分布式存储系统中元数据与文件实体的时间点一致性
- [[匿名访问策略]]MinIO mc anonymous 命令设置 bucket 公共读写权限
## Key Entities
- [[MinIO]]:开源 S3 兼容对象存储MinIO + Zipline 架构的存储后端
- [[Zipline]]:开源图床应用,提供前端上传 UI 和 REST API
- [[PostgreSQL]]Zipline 的元数据数据库
- [[群晖 NAS]]Synology NAS部署 Docker 的硬件平台
- [[n8n]]:工作流自动化工具,通过 Zipline API 实现图片上传
- [[Synology Hyper Backup]]:群晖备份套件
- [[pg_dump]]PostgreSQL 逻辑备份工具
## Connections
- [[Zipline]] ← depends_on ← [[MinIO]]S3 存储)
- [[Zipline]] ← depends_on ← [[PostgreSQL]](元数据)
- [[n8n]] ← calls ← [[Zipline API]](图片上传)
- [[pg_dump]] ← backup ← [[PostgreSQL]]
- [[Synology Hyper Backup]] ← backup ← [[MinIO 数据目录]]
- [[Docker堆栈]] ← orchestrates ← [[MinIO]] + [[Zipline]] + [[PostgreSQL]]
## Contradictions
- 与 [[rsync增量备份]] 冲突:
- 冲突点:数据库备份方式
- 当前观点pg_dump 逻辑备份SQL 文件,可跨平台迁移)
- 对方观点rsync 增量备份(文件级同步,适合 Docker 卷)
- 协调两者互补——pg_dump 备份元数据rsync/Hyper Backup 备份文件实体
## Architecture
```
[DSM Docker UI]
├── MinIO (9000 API, 9001 Console)
│ └── /volume1/docker/zipline-stack/minio/minio_data
├── PostgreSQL (Zipline DB)
│ └── /volume1/docker/zipline-stack/zipline/pg_data
└── Zipline (暴露 3333)
├── 前端上传 UI
└── n8n API 上传
Zipline → MinIOS3 → NAS 存储
```
## Docker Compose Key Config
```yaml
services:
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
ports:
- "9000:9000" # API
- "9001:9001" # Console
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: Abcd_1234
postgres:
image: postgres:16
environment:
POSTGRES_USER: zipline
POSTGRES_PASSWORD: zipline
POSTGRES_DB: zipline
zipline:
image: ghcr.io/diced/zipline:latest
depends_on:
minio:
condition: service_healthy
postgres:
condition: service_healthy
environment:
DATABASE_URL: postgres://zipline:***@postgres:5432/zipline
STORAGE_ENGINE: s3
S3_BUCKET: zipline-bucket
S3_ENDPOINT: http://minio:9000
S3_ACCESS_KEY: admin
S3_SECRET_KEY: Abcd_1234
S3_FORCE_PATH_STYLE: "true"
```
## mc (MinIO Client) Anonymous Access Commands
```bash
# 设置别名
mc alias set local http://192.168.3.17:9000 admin StrongPasswordHere
# 创建 bucket
mc mb local/zipline-bucket
# 设置公共读写权限
mc anonymous set public local/zipline-bucket
# 匿名权限类型
# - download: 仅下载GET
# - upload: 仅上传PUT
# - public: 读写
# - none: 禁用匿名访问
```
## Backup Script
```bash
#!/bin/bash
BACKUP_DIR="/volume1/docker/zipline-stack/backups"
PG_CONTAINER="zipline_postgres"
PG_USER="zipline"
PG_DB="zipline"
RETENTION_DAYS=30
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p "$BACKUP_DIR"
# pg_dump 逻辑备份(热备份)
docker exec "$PG_CONTAINER" pg_dump -U "$PG_USER" -d "$PG_DB" | gzip > "$BACKUP_DIR/db_$DATE.sql.gz"
# 清理旧备份
find "$BACKUP_DIR" -name "db_*.sql.gz" -mtime +$RETENTION_DAYS -delete
```
## Reference URLs
- [Docker Volume Documentation](https://docs.docker.com/storage/volumes/)
- [MinIO Docker Persistence](https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-single-drive.html)
- [Synology ACL Settings](https://kb.synology.com/en-global/DSM/tutorial/How_to_manage_ACL_settings_on_your_Synology_NAS)
- [MinIO mc anonymous](https://min.io/docs/enterprise/aistor-object-store/reference/cli/mc-anonymous/)

View File

@@ -0,0 +1,60 @@
---
title: "Ubuntu Server科学上网"
type: source
tags: [docker, proxychains, ubuntu, v2rayn]
date: 2025-12-29
---
## Source File
- [[raw/Home Office/Ubuntu Server科学上网.md]]
## Summary (用中文描述)
- **核心主题**Ubuntu Server 终端场景下的科学上网多方案配置,涵盖 ProxyChains、Git 全局代理、Docker Daemon 代理、Docker 容器内代理四种场景
- **问题域**:如何让 Ubuntu Server 上的各种命令行工具git clone、docker pull、apt-get和容器内应用通过代理访问国外资源
- **方法/机制**:按场景分:① ProxyChains 劫持任意命令 ② Git 全局配置 ③ Docker Daemon systemd 注入 ④ Docker 容器环境变量注入
- **结论/价值**:提供了完整的"Ubuntu Server 终端代理"工具箱,针对不同工具有不同最优方案
## Key Claims (用中文描述)
- ProxyChains 通过 LD_PRELOAD 劫持动态链接库的 socket 调用,使原本不支持代理的终端命令(如 curl、wget、git clone自动走 SOCKS5 代理
- Git 不读取系统环境变量 http_proxy/HTTP_PROXY必须通过 `git config --global` 设置 socks5:// 代理
- Docker Daemondockerd以 systemd 服务运行,不读取普通用户环境变量,必须通过 systemd drop-in 文件注入 HTTP_PROXY 环境变量
- Docker 容器默认 bridge 网络模式下127.0.0.1 指向容器内部而非宿主机,需使用 Docker 网络网关 IP通常是 172.17.0.1 或 172.24.0.1
- Docker 客户端配置文件 `~/.docker/config.json` 的 proxies.default 字段仅影响 `docker run` 新启动的容器,不影响已运行的容器
## Key Quotes
> "curl -x socks5h://127.0.0.1:10808 -v https://www.google.com" — 推荐的最快最直接的代理验证方法socks5h 的 h 表示让代理服务器解析 DNS 避免本地 DNS 污染
> "proxychains4 git clone https://github.com/..." — ProxyChains 使用方法,在任意命令前加前缀即可
> "git config --global http.proxy 'socks5://127.0.0.1:10808'" — Git 全局代理配置,必须显式设置
> "Environment=\"HTTP_PROXY=http://127.0.0.1:10808/\"" — Docker Daemon systemd drop-in 配置格式
> "ALL_PROXY=socks5://172.24.0.1:10808" — Docker 容器内应用代理,使用 Docker 网络网关 IP 而非 127.0.0.1
## Key Concepts
- [[ProxyChains]]:通过 LD_PRELOAD 技术劫持动态链接库的 socket 函数,使终端命令自动走代理的工具,支持 socks4/socks5/HTTP 代理类型
- [[Git 全局代理]]Git 不读取系统环境变量,必须通过 `git config --global` 设置代理配置,支持 socks5 和 HTTP 代理
- [[Docker Daemon Proxy]]:通过 systemd drop-in 文件注入环境变量使 dockerd 走代理的配置方式,配置文件位于 /etc/systemd/system/docker.service.d/http-proxy.conf
- [[Docker 网络网关 IP]]Docker bridge 网络模式下容器访问宿主机的 IP 地址,通常为 172.17.0.1(默认 bridge或 172.24.0.1(自定义网络),不能用 127.0.0.1
- [[SOCKS5h 代理]]SOCKS5 协议的 h 变体socks5h表示 DNS 解析由代理服务器完成,防止本地 DNS 污染导致的连接失败
- [[环境变量代理]]:通过 HTTP_PROXY/HTTPS_PROXY/ALL_PROXY 环境变量让应用走代理的配置方式,适用于 Docker 容器场景
## Key Entities
- [[v2rayN]]:提供 SOCKS5 和 HTTP 代理端口(默认 10808的跨平台代理客户端本文档所有场景的代理来源Ubuntu Server 上通过 v2rayN 提供代理服务
- [[代理客户端]]运行在终端设备上提供本地代理服务的软件v2rayN 是典型产品
- [[SOCKS5 协议]]:一种代理协议,相比 HTTP 代理更通用,可代理任意 TCP 连接
- [[Docker]]容器化平台dockerd 守护进程本身需要代理配置才能 pull 国外镜像
## Connections
- [[v2rayN]] ← 提供代理 ← [[ProxyChains]]
- [[v2rayN]] ← 提供代理 ← [[Git 全局代理]]
- [[v2rayN]] ← 提供代理 ← [[Docker Daemon Proxy]]
- [[v2rayN]] ← 提供代理 ← [[Docker 网络网关 IP]]
- [[Docker Daemon Proxy]] ← 依赖 ← [[systemd]]
- [[ProxyChains]] ← 底层机制 ← [[LD_PRELOAD 劫持]]
- [[ubuntu-server科学上网]] ← 与 ← [[群晖nas科学上网方法]] ← 相关但场景不同(终端 vs NAS GUI
- [[ubuntu-server科学上网]] ← 与 ← [[网件rax50路由器刷梅林固件与科学上网插件安装教程]] ← 互补(终端代理 vs 路由网关代理)
- [[ubuntu-server科学上网]] ← 与 ← [[3x-ui-xray-on-bandwagonvps]] ← 互补(客户端配置 vs 服务端配置)
## Contradictions
- 与 [[群晖nas科学上网方法]] 差异:
- 冲突点群晖方案强调透明代理V2RayA iptables 分流本方案强调显式终端代理ProxyChains/Git/Docker Daemon 配置)
- 当前观点Ubuntu Server 终端场景下,显式配置代理比透明代理更可控、更可预测
- 对方观点:群晖 NAS 场景下,透明代理可以一次性解决所有应用的科学上网问题,无需逐个配置

View File

@@ -0,0 +1,48 @@
---
title: "Ubuntu用RustDesk远程登录出现不能使用Wayland登录的错误"
type: source
tags: [rustdesk, ubuntu, wayland, x11, gdm3]
date: 2026-04-14
---
## Source File
- [[Home Office/Ubuntu用RustDesk远程登录出现不能使用Wayland登录的错误]]
## Summary用中文描述
- 核心主题Ubuntu 24.04 下 RustDesk 无法在 Wayland 会话中使用/登录的故障排查与解决
- 问题域Linux 远程桌面协议兼容性、Wayland vs X11 显示协议
- 方法/机制:修改 GDM3 配置文件,注释掉 `WaylandEnable=false` 以强制使用 X11 协议
- 结论/价值:通过禁用 Wayland 强制 X11使 RustDesk 能够在系统登录前Login Screen和登录后Post-Login正常工作
## Key Claims用中文描述
- Ubuntu 24.04 默认使用 Wayland 显示协议Wayland 基于安全设计严格限制外部程序在未登录状态下获取屏幕控制权
- 修改 `/etc/gdm3/custom.conf` 文件中 `WaylandEnable=false`(取消注释)后,登录界面强制使用 X11RustDesk 后台服务可识别 X11 窗口并与之交互
- X11 的稳定性与权限开放度目前仍优于 Wayland适合需要频繁远程桌面运维的场景
## Key Quotes
> "Ubuntu 24.04 默认使用了 Wayland 显示协议,而 Wayland 出于安全设计,严格限制了外部程序在用户未登录状态下(即 GDM 登录界面)获取屏幕控制权" — 问题根因说明
> "# Uncoment the line below to force the login screen to use Xorg" — GDM3 配置文件注释原文
## Key Concepts
- [[Wayland]]Linux 新一代显示协议,基于安全设计,限制未授权程序获取屏幕控制权
- [[X11]]:经典显示协议,兼容性更好,权限开放度更高,适合远程桌面场景
- [[GDM3]]GNOME Display ManagerUbuntu 默认登录管理器,控制用户会话初始化
## Key Entities
- [[RustDesk]]:开源远程桌面软件,支持自建中继服务器
- [[Ubuntu]]Linux 发行版,本文档针对 24.04 LTS 版本
- [[GNOME]]Ubuntu 24.04 默认桌面环境,使用 GDM3 作为显示管理器
## Connections
- [[Ubuntu]] ← uses ← [[GDM3]]
- [[GDM3]] ← can_run_on ← [[X11]]
- [[GDM3]] ← can_run_on ← [[Wayland]]
- [[RustDesk]] ← requires ← [[X11]] ← (在 GDM3 Login Screen 场景下)
## Contradictions
- 与 [[Ubuntu]] Wayland 趋势:
- 冲突点Ubuntu 24.04 推动 Wayland 替代 X11而本文档建议禁用 Wayland 回退到 X11
- 当前观点:对于 RustDesk 远程桌面运维场景X11 的稳定性和兼容性优于 Wayland
- 对方观点Wayland 是未来方向,应尽量保持默认配置
- 备注:此为务实方案,非长期理想状态

View File

@@ -0,0 +1,75 @@
---
title: "Ubuntu禁用合盖休眠"
type: source
tags: [ubuntu, systemd, 服务器配置]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/Ubuntu禁用合盖休眠.md]]
## Summary (用中文描述)
- 核心主题Ubuntu Server 合盖不休眠的完整操作指南
- 问题域Ubuntu 笔记本作为服务器运行时,合盖触发系统休眠/待机导致服务中断的问题
- 方法/机制:通过修改 systemd-logind 的 logind.conf 配置文件,设置 HandleLidSwitch 系列参数为 ignore并重启服务生效进阶方案是通过 systemctl mask 彻底禁用内核级休眠目标
- 结论/价值:让 Ubuntu 笔记本在无外接显示器的情况下作为稳定服务器运行
## Key Claims (用中文描述)
- systemd-logind 是 Ubuntu 24.04 控制笔记本合盖行为的系统服务
- 修改 /etc/systemd/logind.conf 中的 HandleLidSwitch* 系列配置项并重启服务即可生效
- HandleLidSwitch=ignore 使系统合盖后继续运行
- systemctl mask 可从内核级别彻底禁用 sleep/suspend/hibernate/hybrid-sleep 四个休眠目标
## Key Quotes
> "HandleLidSwitch合盖时的动作通常指用电池时" — Ubuntu logind.conf 配置项说明
> "HandleLidSwitchExternalPower连接外接电源合盖时的动作" — Ubuntu logind.conf 配置项说明
> "HandleLidSwitchDocked连接扩展坞合盖时的动作" — Ubuntu logind.conf 配置项说明
> "在执行此命令时,你的当前会话(包括图形界面或当前的 SSH 连接)可能会短暂断开或重新加载。" — 重启 systemd-logind 的注意事项
## Key Concepts
- [[systemd-logind]]Linux 系统登录管理器,负责管理用户会话、电源事件和系统休眠行为
- [[HandleLidSwitch]]systemd-logind 的合盖动作配置项,支持 ignore/suspend/hibernate/poweroff/lock 等值
- [[休眠目标]]Linux 内核的电源管理目标,包括 sleep.target / suspend.target / hibernate.target / hybrid-sleep.target
## Key Entities
- [[Ubuntu Server]]Canonical 维护的 Linux 服务器操作系统,默认使用 systemd 作为初始化系统
- [[systemd]]Linux 系统和服务管理器,通过 logind 管理笔记本电源事件
## Connections
- [[Ubuntu Server]] ← 使用 ← [[systemd-logind]](电源管理机制)
- [[systemd-logind]] ← 配置项 ← [[HandleLidSwitch]](合盖行为控制)
- [[休眠目标]] ← 进阶禁用 ← systemd通过 systemctl mask
## Contradictions
- 无已知冲突页面
## Related Sources
- [[mac-mini服务器配置-防止自动锁屏与睡眠]] — macOS 等效配置(防止 Mac Mini 服务器自动睡眠)
- [[ubuntu服务器通过rsync实现日常增量备份]] — Ubuntu 服务器备份方案
- [[安装ubuntu-24-04-2在hp-zbook工作站笔记本上]] — HP ZBook Ubuntu 安装记录
## Operations (操作步骤)
### 基础方案:修改 logind.conf
```bash
# 1. 编辑配置文件
sudo nano /etc/systemd/logind.conf
# 2. 修改/添加以下配置(删除行首 #
[Login]
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
# 3. 重启服务使配置生效
sudo systemctl restart systemd-logind
```
### 进阶方案:禁用内核级休眠功能
```bash
# 彻底禁用所有休眠目标
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
# 恢复(如需)
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
```

View File

@@ -0,0 +1,58 @@
---
title: "在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透"
type: source
tags: [vps, caddy, frp, reverse-proxy, troubleshooting, cloudflare, ubuntu, 内网穿透]
date: 2026-04-14
---
## Source File
- [[Home Office/在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透.md]]
## Summary用中文描述
- 核心主题:通过 VPS公网服务器+ frp反向隧道+ Caddy自动 HTTPS 反向代理)实现家庭内网服务的公网域名访问
- 问题域:家庭/办公内网中的 NAS、Ubuntu 服务器运行的服务(如 n8n、Grafana、Transmission 等)如何通过自定义域名从公网安全访问
- 方法/机制Cloudflare DNS A 记录指向 VPS 公网 IP → VPS 运行 frpsfrp 服务端)和 Caddy → 内网主机运行 frpcfrp 客户端)将本地端口映射到 VPS → Caddy 反向代理到 frp 映射端口,自动申请 Let's Encrypt 证书提供 HTTPS
- 结论/价值:完整梳理了从 DNS 配置、frps/frpc 安装配置、Caddy 反向代理到 SSH 穿透的全套流程,并提供了 7 步系统化故障排查指南
## Key Claims用中文描述
- frp 内网穿透工具包含 frps服务端和 frpc客户端通过 TCP 反向隧道将内网端口暴露到公网 VPS
- Caddy 自动管理 HTTPS 证书Let's Encrypt无需手动配置 SSL通过 reverse_proxy 指令将请求转发到 frp 映射的本地端口
- Cloudflare DNS 仅负责将子域名 A 记录指向 VPS 公网 IP不影响 TCP 流量的直接路由
- SSH 穿透不同于 HTTP/HTTPS不经过 Caddy仅通过 frps + frpc 的 TCP 映射实现
- 内网 NAS 上的 V2RayA 透明代理可能干扰 frp 连接,需要停止代理后重启 frpc
## Key Quotes
> "思路Cloudflare DNS 指向 公网上的一台VPSVPS 上运行 Caddy内网主机通过 frp 将服务暴露到 VPS本地 127.0.0.1 或某个端口VPS 反向代理到该端口。" — 整体方案架构描述
> "Caddy 会自动申请并更新 Let's Encrypt 证书,提供 HTTPS 访问。" — Caddy 自动 HTTPS 特性
> "⚠️ **重点提醒(安全性)**SSH 穿透与 HTTP 不同,它是纯 TCP 流量,不经 CaddyCaddy 只处理 HTTP/HTTPS所以Caddy 不参与 SSH 的代理,只用 frps + frpc 配置即可完成。" — SSH 与 HTTP 代理架构差异
> "authentication failed token mismatch invalid login → 那肯定是 token 和 frpc 不一致。" — frp 连接失败的核心原因之一
## Key Concepts
- [[内网穿透]]:通过公网服务器中转,使 NAT/防火墙后的内网服务可被外部访问的技术,本方案使用 frp 反向隧道实现
- [[反向代理]]Caddy 作为反向代理,将公网 HTTPS 请求转发到本地 frp 映射端口,提供统一的 HTTPS 入口
- [[TCP隧道]]frp 通过 TCP 协议在 frpc 客户端和 frps 服务端之间建立持久隧道,支持非 HTTP 协议(如 SSH、MySQL
- [[自动HTTPS]]Caddy 内置 Let's Encrypt 证书自动申请和续期,无需手动管理 SSL 证书
- [[DNS A记录]]Cloudflare DNS 配置,将子域名(如 nas.ishenwei.online指向 VPS 公网 IP
## Key Entities
- [[RackNerd VPS]]VPS 提供商192.227.222.142),托管 frps 服务端和 Caddy 反向代理,作为内网穿透的公网中转站
- [[Synology NAS DS718]]:内网 NAS 设备192.168.3.17),运行 frpc 客户端,通过 frp 暴露 NAS 服务5000端口 → VPS 15000
- [[frp]]:开源内网穿透工具,本方案的核心,包含 frps服务端监听 7000 端口)和 frpc客户端版本 0.65.0
- [[Caddy]]Go 语言编写的自动 HTTPS 反向代理服务器,与 frp 配合为内网服务提供 HTTPS 域名访问
- [[Cloudflare]]:域名 DNS 托管服务商,通过 A 记录将 ishenwei.online 子域名指向 VPS 公网 IP
## Connections
- [[家庭网络环境概览_2026-04-03]] ← extends ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]](本文是该概览中内网穿透架构的详细展开)
- [[ubuntu-安装-frp-0-65-0-x86_64-操作笔记]] ← depends_on ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]]FRP 安装是该方案的前置步骤)
- [[mac-mini-安装-frp-0-65-0-arm64-操作笔记]] ← depends_on ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]]Mac Mini FRP 客户端配置参考)
- [[Ubuntu Server]] ← hosts ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]]Ubuntu Server 24.04 是本方案的目标操作系统)
## Contradictions
- 与 [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] 可能的差异点:
- 冲突点:监控方案中是否包含完整的公网访问配置
- 当前观点:本文提供完整公网域名访问方案,包含 HTTPS 和 SSH 穿透的详细配置
- 对方观点:监控方案侧重于 Prometheus + Grafana + exporters 的部署和告警配置,未展开公网访问细节
- 建议:在监控方案中补充指向本文内网穿透配置的外链,实现监控方案 + 公网访问的完整闭环

View File

@@ -0,0 +1,54 @@
---
title: "如何删除旧的废弃的Docker Container + Volume"
type: source
tags: [container, docker, portainer, volume]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/如何删除旧的废弃的docker container +volume.md]]
## Summary (用中文描述)
- 核心主题Docker 容器生命周期管理——如何彻底清理旧的废弃 Portainer 容器、Volume 和 Network并安全重装
- 问题域Home Server 运维中常见的 Docker 残留资源清理问题,尤其是 Portainer 重装时遇到的警告和报错
- 方法/机制:通过 `docker stop` / `docker rm` 删除容器 → `docker volume rm` 删除数据卷 → `docker network rm` 删除网络 → `docker compose down` 清理 Compose 堆栈;对于遗留资源通过 `external: true` 配置复用或直接重建
- 结论/价值:提供了从发现到彻底重装的完整操作流程,以及对两类常见 WARN 警告的根因分析和解决方案
## Key Claims (用中文描述)
- 运维人员可通过 `docker ps -a | grep portainer` 快速定位 Portainer 容器
- 容器删除前必须先停止,否则需使用 `docker rm -f` 强制删除
- 删除 `portainer_data` Volume 会永久丢失 Portainer 所有数据(用户、配置)
- `docker compose down` 可一键清理整个 Compose 堆栈的容器、网络和(可选)卷
- WARN 1 根因:之前的 compose 文件创建了 network但新 compose 文件试图重建同名网络
- WARN 2 根因:之前的 compose 项目使用了不同 project name遗留了 Volume
- 解决方案:在 compose 文件中声明 `external: true` 以复用旧网络/卷,或删除旧资源后重建
## Key Quotes
> "⚠️ 注意:这会删除 Portainer 所有数据(用户、配置)。如果你想保留数据,不要删 volume只需要在 compose 文件里加:`external: true`" — 删除 Volume 前的警告,区分数据保留策略
> "说明你之前用了别的 compose 文件部署过 Portainer" — WARN 1 的根因解释network 冲突的场景
> "说明你以前用不同 project 名字做过 Portainer" — WARN 2 的根因解释Volume 隔离的项目命名机制
## Key Concepts
- [[Docker容器生命周期管理]]:容器的创建( create ) → 启动( start ) → 停止( stop ) → 删除( rm ) 完整流程管理
- [[Docker Volume]]:容器持久化数据存储卷,通过 `docker volume ls` 查看,`docker volume rm` 删除
- [[Docker Network]]:容器网络连接,通过 `docker network ls` 查看,`docker network rm` 删除
- [[Docker Compose堆栈管理]]:通过 `docker compose down` 一次性清理整个堆栈的容器、网络和卷
- [[external配置]]compose 文件中 `external: true` 声明让 Docker 复用已存在的 Volume 或 Network 而非创建新的
- [[Docker警告处理]]Network 已存在警告和 Volume 属于其他项目的警告的标准排查思路
## Key Entities
- [[Portainer]]Docker 可视化管理工具portainer/portainer-ce通过 Web UI 管理容器/卷/网络,支持 Edge Agent 集群管理
- [[Docker]]:容器化平台,本文档所有操作的底层系统
- [[Docker Compose]]:多容器应用的定义和编排工具,`docker compose down` 提供堆栈级清理能力
## Connections
- [[Portainer]] ← 部署于 ← [[Docker]]
- [[Docker Compose]] ← 管理 ← [[Docker容器生命周期管理]]
- [[Docker Volume]] ← 依赖 ← [[Docker]]
- [[Docker Network]] ← 连接 ← [[Docker]]
- [[external配置]] ← 解决 ← [[Docker警告处理]]
## Contradictions
- 与其他文档无已知冲突

View File

@@ -0,0 +1,59 @@
---
title: "如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹"
type: source
tags: [nas, nfs, synology, ubuntu]
date: 2025-12-29
---
## Source File
- [[raw/Home Office/如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹.md]]
## Summary (用中文描述)
- 核心主题:在 Ubuntu Server 上通过 NFS 协议挂载 Synology NAS 共享文件夹,实现服务器到 NAS 的自动化备份存储
- 问题域Samba 挂载丢失 Linux 文件权限信息导致 Docker 卷恢复失败NFS 相比 Samba 完美保留文件所有权、性能更强
- 方法/机制:
1. Synology NAS DSM 控制面板 → 共享文件夹 → NFS 权限配置关键Squash 设为"映射所有用户为 admin"
2. Ubuntu 安装 nfs-commonmount -t nfs 挂载
3. /etc/fstab 写入永久挂载配置关键参数_netdev、timeo=900、retrans=5
4. sudo mount -a 测试后再重启
5. 备份脚本前加挂载点检查防止数据写入本地磁盘
6. systemctl enable remote-fs.target 解决 nfs-common 启动慢问题
- 结论/价值NFS 是 Linux 服务器备份到 NAS 的最佳方案,配合 rsync + Cron 实现全自动化备份
## Key Claims (用中文描述)
- **NFS 相比 Samba 的核心优势**NFS 原生保留 Linux 文件所有权信息,避免 Docker 卷恢复时的权限报错
- **Synology NFS Squash 关键配置**:必须选择"映射所有用户为 admin",否则 Ubuntu 端 root 发起的备份请求会在 NAS 端遭遇权限校验失败
- **fstab _netdev 参数的作用**:告知系统这是网络设备,等网络服务完全启动后再尝试挂载,防止开机卡死
- **永远不要直接重启测试**/etc/fstab 写错会导致系统无法正常启动,必须先用 sudo mount -a 验证
## Key Quotes
> "NFS 会完美保留文件所有权信息Samba 则会丢失 Linux 的文件所有权,导致恢复 Docker 卷时权限报错。" — NFS 相比 Samba 的优势说明
> "_netdev: **关键参数**。告诉系统这是一个网络设备,务必等到网络服务完全启动后再尝试挂载,防止开机过程因找不到网络而卡死。" — fstab 参数解析
> "千万不要直接重启!如果 `/etc/fstab` 写错了,系统可能无法正常启动。" — 配置验证警告
> "如果在执行了上述操作后重启依然不生效,通常是因为 Ubuntu 的 `nfs-common` 服务启动慢于 `mount -a` 的执行。" — nfs-common 启动时序问题
## Key Concepts
- [[NFS]]Network File SystemLinux/Unix 系统的网络文件系统协议Ubuntu 备份到 NAS 的推荐协议
- [[永久挂载]]:通过 /etc/fstab 配置实现开机自动挂载,配合 _netdev 参数确保网络设备就绪后再挂载
- [[挂载点检查]]:备份脚本执行前的安全验证,使用 mountpoint -q 命令检查挂载点有效性
- [[NFS网络备份]]:通过 NFS 协议将备份数据存储到网络存储设备(与本文 Ubuntu rsync 备份场景互补)
## Key Entities
- [[Synology NAS DS718]]:群晖 NAS 设备192.168.3.17),通过 DSM 控制面板配置 NFS 权限,作为 Ubuntu Server 的备份存储目标
- [[Ubuntu Server]]Linux 服务器发行版,运行 rsync 备份脚本,将数据写入 NAS 的 NFS 挂载点
- [[rsync]]:增量文件同步工具,与 NFS 永久挂载配合实现 Ubuntu Server 到 NAS 的自动化日常备份
## Connections
- [[Ubuntu Server]] ← runs ← [[rsync]] (备份工具)
- [[rsync]] ← writes to ← [[永久挂载]] (NFS 挂载点 /mnt/nas_backup)
- [[永久挂载]] ← depends on ← [[NFS]] (NFS 协议)
- [[Synology NAS DS718]] ← serves ← [[NFS]] (NFS 服务端)
- [[挂载点检查]] ← guards ← [[rsync]] (备份安全前置检查)
- [[Cron定时任务]] ← schedules ← [[rsync]] (定时触发备份)
- [[NFS网络备份]] ← uses ← [[NFS]] (两者同属 NFS 存储应用场景)
## Contradictions
- 无冲突

View File

@@ -0,0 +1,66 @@
---
title: "安装v2rayN"
type: source
tags: [linux, v2rayn, windows, macos]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/安装v2rayN.md]]
## Summary (中文)
- **核心主题**v2rayN 跨平台代理客户端的官方发布包详解,涵盖 Windows/Linux/macOS 各平台下载选项、安装方式与依赖要求
- **问题域**:如何为不同操作系统选择正确的 v2rayN 版本,以及各平台安装注意事项
- **方法/机制**
- zip 便携版:解压即用,数据存储在同目录,多份独立运行
- deb/rpm 安装版:存储在系统用户文件目录,通过 apt/dnf 安装
- WPF 版需额外安装 .NET 8 Desktop RuntimeAvalonia UI 版为自包含
- macOS DMG 版因无签名需执行 `xattr -cr` 修复
- 支持多核心Xray、sing-box、mihomo
- **结论/价值**v2rayN 是支持 Windows/Linux/macOS 的可视化代理客户端Windows 推荐 WPF 版,跨平台推荐 Avalonia UI 版;核心文件需单独下载
## Key Claims (中文)
- v2rayN 跨平台支持 Windows 10+、LinuxDebian 12+/Ubuntu 22.04+/Fedora 36+/RHEL 9+、macOS 12+
- zip 便携版解压后直接运行 `./v2rayN`,数据存放在程序同目录,可多份独立使用
- deb/rpm 安装版存储位置为系统规定的用户文件目录
- Windows x64 WPF 版需预装 Microsoft .NET 8.0 Desktop RuntimeAvalonia UI 版为自包含无需额外依赖
- macOS DMG 版因应用无签名会提示"已损坏",安装后需执行 `xattr -cr /Applications/v2rayN.app` 修复
- 发布包内含部分 CoreXray/sing-box/mihomo其他 Core 需从 v2rayN-core-bin 仓库单独下载
## Key Quotes
> "zip 格式包为便携版,解压缩到文件夹后直接可以运行,存储文件位置为本文件夹;可以复制多份互相独立" — 官方说明
> "v2rayN-windows-64.zip WPF实现的界面需要安装 Microsoft .NET 8.0 Desktop Runtime" — Windows x64 WPF版依赖说明
> "v2rayN-macos-64.dmg 由于安装包没有签名会提示应用已损坏安装后需要运行xattr -cr /Applications/v2rayN.app" — macOS签名问题解决方案
## Key Concepts
- [[代理客户端]]:运行在终端设备上,通过代理协议连接远程节点的软件
- [[代理协议]]v2rayN 支持 VLESS/VMess/Trojan/SS 等协议
- [[Reality]]Xray 的流量伪装方案v2rayN 可配合 Reality 节点使用
- [[Avalonia UI]]:跨平台 .NET UI 框架v2rayN Avalonia 版可运行在 Windows/Linux/macOS无需额外运行时依赖
- [[WPF]]Windows Presentation FoundationWindows 原生 UI 框架,.NET 桌面应用首选
- [[.NET Desktop Runtime]].NET 桌面运行时环境WPF 应用必需依赖
- [[便携版]] vs [[安装版]]:便携版数据自包含、安装版数据放系统目录
- [[代理核心]]:代理客户端的底层引擎,如 Xray、sing-box、mihomo
## Key Entities
- [[v2rayN]]主产品GitHub 2dust 维护的跨平台代理客户端,支持多种协议和核心
- [[Xray]]v2rayN 支持的代理核心之一Reality 流量伪装方案的内核
- [[sing-box]]v2rayN 支持的代理核心,支持多协议
- [[mihomo]]v2rayN 支持的代理核心mihomo 协议实现
- [[2dust]]v2rayN GitHub 仓库维护者
- [[Microsoft .NET 8.0 Desktop Runtime]]Windows WPF 版的必需运行时环境
- [[Avalonia UI]]:跨平台 UI 框架v2rayN desktop 版基于此构建
## Connections
- [[v2rayN]] ← 使用 ← [[Xray]]
- [[v2rayN]] ← 使用 ← [[sing-box]]
- [[v2rayN]] ← 使用 ← [[mihomo]]
- [[v2rayN]] ← 依赖 ← [[Microsoft .NET 8.0 Desktop Runtime]]WPF 版)
- [[v2rayN]] ← 基于 ← [[Avalonia UI]]desktop 版)
- [[3X-UI]] ← 服务端 ← [[Xray]]v2rayN 的服务端 counterpart
- [[v2rayNG]] ← 移动版 ← [[v2rayN]]Android 版)
- [[Bandwagon VPS]] ← 托管 ← [[3X-UI]] + [[Xray]](服务端节点)
## Contradictions
- 与 [[3x-ui-xray-on-bandwagonvps]] 互补而非冲突v2rayN 是客户端3X-UI 是服务端管理面板,共同构成完整代理链路(服务端 Xray ←→ 客户端 v2rayN
- 与 [[ubuntu-server科学上网]] 各有侧重v2rayN 提供图形界面,命令行代理适合服务器/路由器场景

View File

@@ -0,0 +1,101 @@
---
title: "家庭网络环境概览"
type: source
tags: [home-office, nas, synology, ubuntu, vps]
date: 2026-04-03
---
## Source File
- [[raw/Home Office/家庭网络环境概览_2026-04-03.md]]
## Summary (用中文描述)
- **核心主题**星曜家庭网络基础设施的完整架构图谱涵盖5大节点1个公网VPS + 1个Mac Mini + 1个Synology NAS + 2个Ubuntu Server近50个Docker应用服务的部署现状、端口映射与公网访问方案。
- **问题域**如何将分散在多个物理位置和内网的服务通过FRP内网穿透 + Caddy反向代理 + Cloudflare DNS实现统一的HTTPS公网访问
- **方法/机制**
- **FRP**frps/frpc在内网各节点部署frpc客户端公网VPS运行frps服务端通过TCP隧道将内网端口映射到公网
- **Caddy**在公网VPS上运行自动申请Let's Encrypt证书根据域名将请求反向代理到对应的FRP映射端口
- **Cloudflare**:托管 ishenwei.online 域名的DNS解析将子域名A记录指向VPS公网IP
- **Docker Compose**各节点上的服务通过Docker Compose管理独立部署、版本隔离。
- **结论/价值**:该架构实现了"零静态IP依赖"的公网访问方案,所有内网服务均可通过 *.ishenwei.online 子域名从公网访问,同时保持了内网服务的隐私性和低带宽成本。
## Key Claims (用中文描述)
- VPS192.227.222.142通过FRP Server端口7000+ Caddy Web服务器为全网内网服务提供统一的HTTPS公网入口。
- Mac Mini M4192.168.3.189作为主控节点运行OpenClaw AI助手框架、vaultwarden密码管理器及STQ项目管理系统。
- Synology NAS DS718192.168.3.17托管了媒体服务Jellyfin/Navidrome、监控栈Prometheus/Alertmanager/node_exporter、密码管理vaultwarden、云盘挂载CloudDrive2等核心应用。
- Ubuntu Server 1192.168.3.47承担监控可视化Grafana/Superset、个人导航Homarr、BT下载Transmission等面向公网的服务。
- Ubuntu Server 2192.168.3.45运行n8n工作流自动化、Gitea自建Git服务及TikTok项目管理系统DEV环境
- 科学上网代理SOCKS5: 10808在Mac mini、ubuntu1、ubuntu2上均正常仅NAS端口20170仅本机监听。
## Key Quotes
> "Caddy — 现代化 Web 服务器,自带 HTTPS 自动化证书申请,常作为前置反向代理处理业务流量。" — 域名映射表说明
> "FRP Server — 高性能内网穿透服务端frps负责将内网 NAS 或本地开发环境的服务暴露至公网访问。端口 7000" — VPS应用说明
> "n8n 已迁移至 Ubuntu2Mac Mini 不再暴露 n8n 端口" — Mac Mini FRP配置说明
## Key Concepts
- [[内网穿透]]通过FRP反向隧道将内网服务暴露至公网访问的完整方案包含frps服务端和frpc客户端两个组件。
- [[反向代理]]通过Caddy根据域名将公网HTTPS请求反向代理到内网FRP映射端口的机制。
- [[HTTPS自动化证书]]Caddy自动申请和管理Let's Encrypt SSL证书的机制。
- [[Docker Compose]]各节点服务通过YAML文件声明式定义和管理的多容器编排工具。
- [[时序数据库]]Prometheus作为监控数据的时序数据库用于采集和存储node_exporter/cAdvisor/blackbox_exporter的指标。
- [[告警管理]]Alertmanager处理Prometheus告警的分组、抑制、静默和多通道路由。
- [[SOCKS5代理]]本地科学上网代理协议监听127.0.0.1:10808。
- [[DNS托管]]Cloudflare免费提供域名DNS解析服务含CDN和SSL。
## Key Entities
- [[RackNerd]]VPS提供商托管公网VPS1192.227.222.142提供frps和Caddy服务。
- [[Mac Mini M4]]Apple Silicon Mac Mini作为家庭服务器主控节点192.168.3.189运行OpenClaw、vaultwarden、STQ项目等应用。
- [[Synology NAS DS718]]群晖NAS设备192.168.3.17运行DSM管理界面及Calibre/MinIO/Zipline/Navidrome/Jellyfin等Docker应用。
- [[Ubuntu Server]]两个内网Ubuntu服务器节点Ubuntu1: 192.168.3.47, Ubuntu2: 192.168.3.45),承担监控/导航/下载/工作流/Git等服务。
- [[Caddy]]公网VPS上的自动HTTPS反向代理服务器绑定*.ishenwei.online域名。
- [[FRP]]内网穿透工具frps/frpc v0.65.0实现内网端口到公网端口的TCP隧道映射。
- [[Prometheus]]时序数据库监控系统在NAS和Ubuntu1上运行采集node_exporter/cAdvisor/blackbox_exporter指标。
- [[Grafana]]监控可视化平台Ubuntu1:13000通过Dashboard ID导入官方模板。
- [[vaultwarden]]轻量级Bitwarden密码管理器服务端在Mac Mini和NAS上均有部署。
- [[Jellyfin]]开源媒体服务器在NAS上运行端口8096公网通过FRP+Caddy访问。
- [[Navidrome]]开源音乐流媒体服务器Subsonic API兼容在NAS上运行端口4533
- [[Transmission]]BT下载客户端在Ubuntu1上运行端口9091公网通过FRP+Caddy访问。
- [[n8n]]工作流自动化平台已从Mac Mini迁移至Ubuntu2端口5678公网通过FRP+Caddy访问。
- [[Portainer]]Docker容器可视化管理界面在NAS、Ubuntu1、Ubuntu2上均有部署。
- [[Homarr]]:个人导航页面/仪表板在Ubuntu1上运行端口7575公网通过FRP+Caddy访问。
- [[Apache Superset]]开源BI平台在Ubuntu1上运行端口8777公网通过FRP+Caddy访问。
- [[Zipline]]自托管图床应用在NAS上运行端口3333后端为PostgreSQL。
- [[MinIO]]S3兼容对象存储在NAS上运行端口9001作为Zipline的存储后端。
- [[Cloudflare]]DNS托管服务商免费提供CDN和SSL证书托管ishenwei.online域名。
- [[OpenClaw]]AI助手框架在Mac Mini上运行端口8080星曜的主要运行环境。
- [[Calibre]]电子书库管理工具在NAS上运行端口8083公网通过FRP+Caddy访问。
- [[v2rayA]]V2Ray图形化代理客户端在NAS上运行端口2017SOCKS5仅本机监听。
- [[CloudDrive2]]多云盘挂载工具在NAS上运行端口19798支持阿里云盘等。
- [[Alertmanager]]Prometheus告警分发组件在NAS和Ubuntu1上运行端口9093
- [[node_exporter]]Prometheus官方主机指标采集器以host network模式运行。
- [[cAdvisor]]Google开源容器资源监控工具挂载Docker socket采集容器级指标。
- [[blackbox_exporter]]Prometheus官方黑盒探测exporter支持HTTP/TCP/ICMP/DNS/TLS探测。
- [[nginx-proxy-manager]]反向代理管理工具在Ubuntu1上运行端口81
- [[Gitea]]自建Git服务在Ubuntu2上运行端口3000
- [[Draw.io]]在线图表编辑器在Ubuntu2上运行端口8085公网通过FRP+Caddy访问。
- [[it-tools]]开源开发者工具集合在Ubuntu1和Ubuntu2上运行端口8999提供URL编解码、UUID生成、哈希计算等100+工具。
## Connections
- [[Caddy]] ← 反向代理 ← [[FRP]]Caddy将HTTPS请求代理到FRP映射端口
- [[Cloudflare]] ← DNS托管 ← [[Caddy]]DNS A记录指向VPS公网IP
- [[Prometheus]] ← 指标采集 ← [[node_exporter]] + [[cAdvisor]] + [[blackbox_exporter]]
- [[Grafana]] ← 数据源 ← [[Prometheus]]Grafana消费Prometheus指标
- [[Alertmanager]] ← 告警路由 ← [[Prometheus]]Prometheus触发告警后发送至Alertmanager
- [[Zipline]] ← 存储后端 ← [[MinIO]]Zipline使用MinIO存储图片
- [[Zipline]] ← 数据库 ← [[PostgreSQL]]NAS上zipline_postgres容器
- [[Jellyfin]] ← 下载来源 ← [[Transmission]](下载→整理→播放工作流)
- [[Navidrome]] ← 同 ← [[Jellyfin]](均为媒体服务,下载→播放工作流)
- [[OpenClaw]] ← 运行平台 ← [[Mac Mini M4]]OpenClaw的主要运行环境
- [[n8n]] ← 数据存储 ← [[PostgreSQL]]Ubuntu2上n8n_postgres容器
- [[Cloudflare]] ← DNS ← [[RackNerd]]VPS IP: 192.227.222.142
- [[FRP]] ← 客户端节点 ← [[Mac Mini M4]] + [[Synology NAS DS718]] + [[Ubuntu Server 1]] + [[Ubuntu Server 2]]4个frpc客户端
- [[FRP]] ← 服务端 ← [[RackNerd]]VPS运行frps服务端
- [[Docker Compose]] ← 部署载体 ← [[Prometheus]] + [[Grafana]] + [[Jellyfin]] + [[Navidrome]] + [[n8n]] + [[Zipline]] + [[MinIO]] + [[v2rayA]] + [[vaultwarden]] + [[Portainer]] + [[Homarr]] + [[Apache Superset]] + [[Gitea]] + [[it-tools]]所有Docker应用均通过Docker Compose部署
## Contradictions
- 与 [[ubuntu-server科学上网]] 冲突:
- **冲突点**NAS上v2rayA的SOCKS5代理端口20170状态为"仅本机监听"而ubuntu-server科学上网方案强调Docker Daemon也需要代理配置。
- **当前观点**v2rayA在NAS上运行但仅本机监听Docker pull仍可能受限。
- **对方观点**Ubuntu Server可通过ProxyChains/Docker Daemon Proxy显式配置代理覆盖终端和Docker Daemon两层。
- **Resolution**v2rayA仅覆盖NAS本身NAS上Docker pull可能还需配置Docker Daemon Proxy参考[[群晖NAS科学上网]]方案)。

View File

@@ -0,0 +1,49 @@
---
title: "用Docker安装Apache Superset"
type: source
tags: [apache, bi, docker, mysql, superset]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/用Docker安装Apache Superset.md]]
## Summary (用中文描述)
- 核心主题:通过 Docker 快速部署 Apache Superset 开源 BI 平台,包含镜像拉取、容器启动、管理员账户创建、数据库迁移、示例数据加载等完整 6 步初始化流程
- 问题域Home Server 场景下自托管 BI 可视化平台的 Docker 容器化部署
- 方法/机制:使用 Docker Hub 官方镜像 `apache/superset:GHA-19524015706`GHA 构建版本),通过 `docker pull` + `docker run` + `docker exec` 初始化三步骤完成部署,端口映射 8777:8088数据库使用内置 SQLite
- 结论/价值:提供一套可快速落地的自托管 BI 平台部署方案,适合家庭服务器场景的轻量级数据可视化
## Key Claims (用中文描述)
- Apache Superset 通过 Docker 容器化部署可实现一键启动,是 Home Server 场景下的轻量级 BI 可视化方案
- 通过 `superset fab create-admin` 命令行交互式创建首个管理员账户(用户名/邮箱/密码)
- 通过 `superset db upgrade` 执行数据库迁移,确保 Superset 元数据存储就绪
- 通过 `superset load_examples` 加载示例数据集,新用户可快速熟悉 BI 平台功能
- 通过 `superset init` 完成初始化,使平台进入可用状态
## Key Quotes
> "docker run -d -p 8777:8088 -e \"SUPERSET_SECRET_KEY=*** --name superset apache/superset:GHA-19524015706"
> — 容器启动命令8777 映射到容器内 8088设置了安全密钥环境变量
> "docker exec -it superset superset fab create-admin --username admin --firstname Superset --lastname Admin --email admin@superset.com --password admin"
> — 管理员账户创建命令,通过 flask-appbuilder (fab) CLI 创建首个 admin 用户
## Key Concepts
- [[BI平台]]Business Intelligence 平台提供数据可视化、仪表盘构建、SQL 查询等功能
- [[Docker容器化部署]]:通过 Docker 镜像封装应用依赖,实现环境一致性和快速部署
- [[Flask-AppBuilder]]Superset 的 Web 框架,基于 Flask 的认证和权限管理组件
- [[数据库迁移]]:通过 `db upgrade` 命令初始化或升级 Superset 元数据数据库
## Key Entities
- [[Apache Superset]]Apache 软件基金会旗下的开源 BI 平台,支持多样化图表和仪表盘构建
- [[Docker]]容器化平台Superset 的部署底座
- [[MySQL]]Superset 支持的外部数据库后端(标签提及),默认使用 SQLite
## Connections
- [[Apache Superset]] ← deployed_by ← [[Docker]]
- [[Home Server Automation]] ← part_of ← [[家庭网络环境概览]]
- [[Apache Superset]] ← use_case ← [[数据可视化]]
- [[Portainer]] ← alternative_admin_ui ← [[Docker]]
## Contradictions
- 无冲突

View File

@@ -0,0 +1,47 @@
---
title: "用Docker安装Homarr"
type: source
tags: [docker, homarr]
date: 2026-04-14
---
## Source File
- [[Home Office/用Docker安装Homarr.md]]
## Summary用中文描述
- 核心主题:通过 Docker Compose 在 Home Server 上部署 Homarr 个人导航仪表盘
- 问题域Homarr 是一款开源服务器/服务仪表盘工具,用于集中展示和管理家庭网络中的各类自托管服务
- 方法/机制:使用 docker-compose.yml 定义 Homarr 容器,通过卷挂载持久化配置数据,通过环境变量配置加密密钥和代理
- 结论/价值:提供统一的 Web UI 入口,方便查看和管理 Jellyfin、n8n、Prometheus 等多个自托管服务
## Key Claims用中文描述
- Homarr 官方通过 GitHub Container Registry 发布 Docker 镜像ghcr.io/homarr-labs/homarr
- Homarr 支持挂载 /var/run/docker.sock 以直接集成 Docker 容器状态监控
- Homarr 依赖 SECRET_ENCRYPTION_KEY 环境变量进行数据加密
## Key Quotes
> "image: ghcr.io/homarr-labs/homarr" — 官方镜像来源为 GitHub Container Registry
> "ports: - '7575:7575'" — Homarr 默认 Web UI 端口为 7575
> "- /var/run/docker.sock:/var/run/docker.sock" — 挂载 Docker Socket 以获取容器信息
> "- ALL_PROXY=socks5://172.24.0.1:10808" — 通过宿主机 SOCKS5 代理访问外网
## Key Concepts
- [[Docker Compose]]:通过 YAML 配置文件声明式定义 Homarr 服务
- [[Docker卷]]/appdata 卷挂载用于持久化 Homarr 的配置数据
- [[Homarr]]开源自托管服务仪表盘Home Server Dashboard
- [[环境变量代理]]:通过 ALL_PROXY 环境变量配置容器级代理
- [[SOCKS5代理]]Homarr 容器通过 socks5://172.24.0.1:10808 访问外部网络
## Key Entities
- [[Homarr]]:开源服务器仪表盘项目,提供 Homarr Labs 维护的官方 Docker 镜像
## Connections
- [[用docker安装jellyfin]] ← related_service ← [[用docker安装homarr]]
- [[用docker安装n8n]] ← related_service ← [[用docker安装homarr]]
- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] ← related_service ← [[用docker安装homarr]]
## Contradictions
- 与 [[用docker安装portainer]] 冲突:
- 冲突点:两者都提供 Docker 容器管理能力
- 当前观点Homarr 提供服务层面的统一导航仪表盘整合多个服务状态Portainer 提供专业的 Docker 运维 Web UI
- 对方观点Portainer 功能更全面,可管理容器/网络/卷/镜像等底层资源

View File

@@ -0,0 +1,48 @@
---
title: "用Docker安装Jellyfin"
type: source
tags: [docker, jellyfin, movie, nas, synology, tv-show]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/用Docker安装Jellyfin.md]]
## Summary (用中文描述)
- 核心主题:通过 Docker Compose 在群晖 NAS 上部署 Jellyfin 视频媒体服务器,实现家庭媒体中心
- 问题域家庭影院、个人媒体库、NAS 多媒体服务
- 方法/机制:使用 nyanmisaka/jellyfin 镜像(预装硬件转码优化),通过 Docker Compose YAML 配置服务,启用 Intel QuickSync 硬件加速转码(/dev/dri 设备直通),配置多目录媒体挂载、群晖 UID/GID 用户权限、自定义字体、时区和外网发布 URL
- 结论/价值:构建完整的"Transmission 下载 → Jellyfin 播放"家庭媒体工作流,支持视频转码以适配不同客户端
## Key Claims (用中文描述)
- nyanmisaka/jellyfin 镜像通过预装 FFmpeg 和硬件转码依赖,提供开箱即用的 Intel QuickSync 加速能力
- 群晖 NAS 使用 `user: "1026:100"` 固定 UID:GID可避免容器内文件权限问题
- `/dev/dri` 设备直通使容器内 Jellyfin 可调用宿主机的 GPU 进行硬件视频转码
- Jellyfin 默认端口 8096UDP 端口 7359 用于自动发现
## Key Quotes
> "核心优化:挂载硬件渲染设备以实现 Intel QuickSync 转码" — 硬件加速转码是 Jellyfin 在 NAS 上的性能关键
## Key Concepts
- [[硬件转码]]:通过 Intel QuickSync / NVIDIA GPU / VA-API 等硬件加速视频编解码,相比软件转码大幅降低 CPU 占用
- [[媒体服务器]]:提供视频/音乐流媒体播放服务的自托管应用Jellyfin 属于此类
- [[Docker 用户权限映射]]:通过 PUID/PGID 或 user 字段将容器内用户映射到宿主机特定用户,解决文件读写权限问题
- [[设备直通]]:通过 Docker devices 参数将宿主机设备(如 GPU、硬件编码器映射到容器内使用
## Key Entities
- [[Jellyfin]]:开源视频媒体服务器,本文部署的目标服务,提供网页端播放和管理界面
- [[nyanmisaka/jellyfin]]:社区维护的 Jellyfin Docker 镜像,预装优化版 FFmpeg 和硬件转码支持
- [[群晖 NAS]]Synology NASNAS 设备类型,本文 Jellyfin 的宿主机,提供 /volume1/docker 存储路径
- [[Intel QuickSync]]Intel CPU 集成视频编码/解码硬件单元,通过 /dev/dri 接口访问
- [[LinuxServer.io]]:开源 Docker 镜像维护组织Jellyfin 官方镜像由其维护nyanmisaka 是社区优化分支
## Connections
- [[Transmission]] ← 下载端 ← [[Jellyfin]](播放端)— "下载→整理→播放" 家庭媒体工作流
- [[Navidrome]] ← 对标竞品 ← [[Jellyfin]] — Navidrome 服务音乐Jellyfin 服务视频
- [[用docker安装transmission]] ← 共用宿主机 ← [[用docker安装jellyfin]] — 共用 Docker 环境和 NAS 存储
- [[群晖 NAS]] ← 宿主机 ← [[用docker安装jellyfin]] — NAS 提供 Docker 环境和存储卷
- [[Intel QuickSync]] ← 依赖 ← [[Jellyfin]] — QuickSync 提供硬件转码加速
- [[Docker卷]] ← 数据存储 ← [[Jellyfin]] — config 和 cache 目录持久化
## Contradictions
- 无已知冲突

View File

@@ -0,0 +1,50 @@
---
title: "用Docker安装Portainer"
type: source
tags: [docker, portainer]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/用Docker安装Portainer.md]]
## Summary (用中文描述)
- **核心主题**:通过 Docker Compose 在 Home Server 上部署 Portainer 容器管理 Web UI
- **问题域**:家庭服务器 Docker 容器运维管理
- **方法/机制**:使用 docker-compose.yml 定义 Portainer 服务,通过 Docker socket 直通实现宿主机 Docker 守护进程的 Web 可视化管理
- **结论/价值**:提供图形化界面管理 Docker 容器/镜像/卷/网络,降低命令行运维门槛
## Key Claims (用中文描述)
- **Portainer** 通过 `docker.sock` 挂载实现对宿主机 Docker 守护进程的完整访问控制
- 使用 **portainer/portainer-ce:lts** 镜像部署 Portainer Community Edition 长期支持版
- 配置 `restart: always` 确保容器在宿主机重启后自动恢复
- 映射端口 `9443:9443` 提供 HTTPS API Web 界面,`8000:8000` 支持 Edge Agent 通信
- 持久化数据存储在 Docker 卷 `portainer_data:/data`
## Key Quotes
> "create docker-compose.yml" — 部署起点docker-compose 是 Portainer 部署的标准方式
> "`docker-compose run -d`" — 容器启动命令,后台守护模式运行
## Key Concepts
- [[Docker可视化管理工具]]:提供 Web UI 替代命令行管理 Docker 容器、镜像、卷、网络
- [[Docker Socket]]`/var/run/docker.sock` 是 Docker 守护进程的 Unix socket挂载到容器内实现特权访问
- [[Docker卷]]`portainer_data` Docker 卷用于持久化 Portainer 自身数据(配置、密码等)
## Key Entities
- [[Portainer]]:开源 Docker 可视化管理工具,提供 Web UI 管理容器/镜像/卷/网络
- [[Portainer CE LTS]]Portainer Community Edition 长期支持版本
## Connections
- [[Portainer]] ← 依赖 ← [[Docker Engine]](宿主机 Docker 守护进程)
- [[Portainer]] ← 使用 ← [[Docker Socket]]socket 直通实现特权访问)
- [[Portainer]] ← 存储数据在 ← [[Docker卷]]portainer_data 卷)
- [[Portainer]] ← 属于 ← [[Docker可视化管理工具]](替代命令行运维)
## Contradictions
- 无冲突
## Related Sources
- [[用docker安装transmission]] — 同属 Home Office Docker 部署系列
- [[用docker安装jellyfin]] — 同属 Home Office Docker 部署系列
- [[用docker安装navidrome]] — 同属 Home Office Docker 部署系列

View File

@@ -0,0 +1,53 @@
---
title: "群晖NAS科学上网方法"
type: source
tags: [docker, nas, synology, v2raya, vpn]
date: 2025-03-08
---
## Source File
- [[raw/Home Office/群晖NAS科学上网方法.md]]
## Summary (用中文描述)
- **核心主题:** 在群晖 NASSynology DSM上通过 V2RayA 代理实现 Docker 容器透明代理,使 NAS 上的 Docker 可以访问 Docker Hub 等被墙的国外资源
- **问题域:** 国内网络环境下 NAS Docker pull/pull image 困难V2RayA 透明代理对 Docker Daemon 网络栈的兼容性挑战
- **方法/机制:** 两层方案——① V2RayA Docker 容器 + 透明代理(分流模式:大陆白名单);② Docker Daemon HTTP Proxy 配置(兜底方案)
- **结论/价值:** 透明代理在群晖 DSM 7.x 中对 Docker Daemon 网络栈不一定生效;显式配置 Docker Daemon Proxy 环境变量是更可靠的 Engineering Best Practice
## Key Claims (用中文描述)
- V2RayA 在群晖 DSM 7.x 环境下透明代理不一定对 HostNAS 本机)生效,可能与 DSM 防火墙或路由表冲突
- Docker Daemon (dockerd) 的网络栈在群晖 DSM 7.x 中不完全遵循 v2rayA 修改的 iptables 规则
- 显式配置 Docker Daemon 的 HTTP Proxy 环境变量(`/etc/systemd/system/`)比依赖 NAS Host 透明代理更符合工程最佳实践
- 验证流程:`curl -x` 测端口 → `curl` 直连测透明代理 → `docker pull` 实战验证
## Key Quotes
> "对于企业级或生产环境(即使是 SOHO我建议**不要**依赖 NAS Host 的透明代理来解决 `docker pull` 问题,因为这修改了系统级路由表,容易影响 NAS 其他服务。**显式配置 Docker Daemon 的 Proxy 环境变量(上面的最后一种方法)是更符合 Engineering Best Practice 的做法。**" — 经验总结
> "⚠️ 风险提示:在 NAS 上开启透明代理(尤其是 Host 模式)有极小概率会导致局域网连接中断。如果你正在远程操作,请确保有备用连接方案(如 QuickConnect 或同局域网设备)。" — 操作警告
## Key Concepts
- [[透明代理]]V2RayA 通过修改 iptables 规则劫持系统出站流量,国内流量直连、国外流量走代理的分流模式
- [[Docker Daemon Proxy]]Docker 守护进程的 HTTP/HTTPS 代理配置,通过 systemd 环境变量注入,使 `docker pull` 显式走代理而非依赖系统透明代理
- [[分流模式]]V2RayA 路由策略,"大陆白名单"模式下仅代理非中国大陆流量,减少不必要的代理开销
- [[iptables]]Linux 内核防火墙V2RayA 通过修改 iptables 规则实现透明代理
## Key Entities
- [[V2RayA]]V2Ray 的 Web 可视化管理界面,基于 V2Ray 内核,支持透明代理和多种分流策略
- [[群晖 NAS]]Synology NAS 设备,运行 DSM 操作系统Docker 环境为 ContainerManager (DSM 7.x)
- [[Docker]]:容器化平台,群晖通过 ContainerManager 套件提供 Docker 支持
- [[Docker Hub]]Docker 官方镜像仓库,国内访问受限,是科学上网的主要需求驱动
- [[DSM 7.x]]:群晖 DiskStation Manager 7.x 版本Docker 服务名为 ContainerManager旧版叫 Docker
## Connections
- [[V2RayA]] ← 部署于 ← [[群晖 NAS]]
- [[透明代理]] ← 依赖 ← [[iptables]]
- [[Docker Daemon Proxy]] ← 解决 ← 透明代理对 Docker 无效的场景
- [[分流模式]] ← 配置于 ← [[V2RayA]]
- [[群晖NAS科学上网]] ← 扩展 ← [[ubuntu-server科学上网]](终端代理场景)
## Contradictions
- 与"路由器科学上网"方案([[MerlinClash插件]])对比:
- **冲突点:** 路由器作为全屋透明网关 vs NAS 终端代理
- **当前观点(本文):** NAS 终端配置 Docker Daemon Proxy 是针对 Docker 场景的精确解决方案
- **对方观点(路由方案):** 路由器透明代理覆盖所有设备,无需逐设备配置
- **结论:** 两者互补路由器作为主网关NAS 按需单独配置 Docker 代理