[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"categories":3,"songs":41,"article-43":1193,"comments-43":1248},[4,11,17,23,29,35],{"_id":5,"name":6,"description":7,"cover":8,"created_at":9,"updated_at":9,"id":10},"6a2d2e4f58b719b2465af022","后端工程","NestJS \u002F Node.js 服务端：数据建模、缓存、鉴权、错误处理、对象存储等工程实践。","","2026-06-13T10:17:51.794Z",9,{"_id":12,"name":13,"description":14,"cover":8,"created_at":15,"updated_at":15,"id":16},"6a2d2e5058b719b2465af027","前端工程","Nuxt \u002F Vue \u002F React 前端与后台：SSR、运行时配置、组件与交互、请求层封装、语言与浏览器。","2026-06-13T10:17:52.535Z",10,{"_id":18,"name":19,"description":20,"cover":8,"created_at":21,"updated_at":21,"id":22},"6a2d2e5158b719b2465af02a","AI 工程","边缘 \u002F Serverless AI：RAG、Agent、LLM 调度、知识库同步与限流。","2026-06-13T10:17:53.139Z",11,{"_id":24,"name":25,"description":26,"cover":8,"created_at":27,"updated_at":27,"id":28},"6a2d2e5158b719b2465af02d","云原生与交付","Docker \u002F Nginx \u002F CI-CD \u002F 证书与边缘网络：从本地一键启动到生产零停机部署。","2026-06-13T10:17:53.362Z",12,{"_id":30,"name":31,"description":32,"cover":8,"created_at":33,"updated_at":33,"id":34},"6a2d2e5158b719b2465af030","架构与工程实践","跨切面主题：架构演进、解耦、可观测性、安全与开源治理。","2026-06-13T10:17:53.581Z",13,{"_id":36,"name":37,"description":38,"cover":8,"created_at":39,"updated_at":39,"id":40},"6a2d2e5158b719b2465af033","工具与效率","开发环境、编辑器、命令行与效率技巧：Vim \u002F Git \u002F Zsh \u002F macOS \u002F ffmpeg 等。","2026-06-13T10:17:53.804Z",14,[42,51,58,65,71,77,83,89,95,101,107,113,119,125,131,138,145,152,159,166,172,179,186,193,200,207,214,220,227,234,241,248,255,262,269,276,283,290,297,304,311,318,325,332,339,346,353,360,367,374,381,388,395,402,409,416,423,429,436,443,450,456,463,470,477,484,490,497,504,510,516,522,528,535,542,549,556,563,570,577,584,591,597,604,611,618,625,632,639,646,653,660,666,672,678,684,690,697,703,710,717,724,731,737,744,751,758,764,771,777,783,789,796,803,810,817,824,831,838,845,852,859,866,873,880,887,894,901,908,915,922,929,936,943,950,957,964,971,977,983,990,997,1004,1011,1018,1025,1032,1039,1045,1052,1058,1065,1072,1079,1086,1093,1100,1106,1112,1119,1126,1132,1139,1146,1153,1160,1167,1174,1180,1187],{"_id":43,"name":44,"artist":45,"url":46,"cover":47,"sort":48,"created_at":49,"updated_at":49,"id":50},"6a3141fa73c9eb8a9b458b0d","Star Unkind(Lanfranchi & Farina Radio).mp3","2Someone","\u002Fmusic\u002F2Someone%20-%20Star%20Unkind%28Lanfranchi%20%26%20Farina%20Radio%29.mp3","\u002Fblog\u002Fasdf-avatar.jpg",0,"2026-06-16T12:30:50.509Z",1,{"_id":52,"name":53,"artist":54,"url":55,"cover":47,"sort":50,"created_at":56,"updated_at":56,"id":57},"6a3141fa73c9eb8a9b458b1d","Right Now (Na Na Na).mp3","Akon","\u002Fmusic\u002FAkon%20-%20Right%20Now%20%28Na%20Na%20Na%29.mp3","2026-06-16T12:30:50.587Z",2,{"_id":59,"name":60,"artist":61,"url":62,"cover":47,"sort":57,"created_at":63,"updated_at":63,"id":64},"6a3141fa73c9eb8a9b458b22","All Falls Down.mp3","Alan Walker","\u002Fmusic\u002FAlan%20Walker%20-%20All%20Falls%20Down.mp3","2026-06-16T12:30:50.608Z",3,{"_id":66,"name":67,"artist":61,"url":68,"cover":47,"sort":64,"created_at":69,"updated_at":69,"id":70},"6a3141fa73c9eb8a9b458b25","Alone, Pt. II.mp3","\u002Fmusic\u002FAlan%20Walker%20-%20Alone%2C%20Pt.%20II.mp3","2026-06-16T12:30:50.637Z",4,{"_id":72,"name":73,"artist":61,"url":74,"cover":47,"sort":70,"created_at":75,"updated_at":75,"id":76},"6a3141fa73c9eb8a9b458b28","Darkside.mp3","\u002Fmusic\u002FAlan%20Walker%20-%20Darkside.mp3","2026-06-16T12:30:50.652Z",5,{"_id":78,"name":79,"artist":61,"url":80,"cover":47,"sort":76,"created_at":81,"updated_at":81,"id":82},"6a3141fa73c9eb8a9b458b2b","Lost Control.mp3","\u002Fmusic\u002FAlan%20Walker%20-%20Lost%20Control.mp3","2026-06-16T12:30:50.668Z",6,{"_id":84,"name":85,"artist":61,"url":86,"cover":47,"sort":82,"created_at":87,"updated_at":87,"id":88},"6a3141fa73c9eb8a9b458b2e","On My Way.mp3","\u002Fmusic\u002FAlan%20Walker%20-%20On%20My%20Way.mp3","2026-06-16T12:30:50.676Z",7,{"_id":90,"name":91,"artist":61,"url":92,"cover":47,"sort":88,"created_at":93,"updated_at":93,"id":94},"6a3141fa73c9eb8a9b458b31","The Spectre.mp3","\u002Fmusic\u002FAlan%20Walker%20-%20The%20Spectre.mp3","2026-06-16T12:30:50.684Z",8,{"_id":96,"name":97,"artist":98,"url":99,"cover":47,"sort":94,"created_at":100,"updated_at":100,"id":10},"6a3141fa73c9eb8a9b458b34","Scars To Your Beautiful.mp3","Alessia Cara","\u002Fmusic\u002FAlessia%20Cara%20-%20Scars%20To%20Your%20Beautiful.mp3","2026-06-16T12:30:50.693Z",{"_id":102,"name":103,"artist":104,"url":105,"cover":47,"sort":10,"created_at":106,"updated_at":106,"id":16},"6a3141fa73c9eb8a9b458b37","Hear Me Now.mp3","Alok","\u002Fmusic\u002FAlok%20-%20Hear%20Me%20Now.mp3","2026-06-16T12:30:50.702Z",{"_id":108,"name":109,"artist":110,"url":111,"cover":47,"sort":16,"created_at":112,"updated_at":112,"id":22},"6a3141fa73c9eb8a9b458b3a","Meant To Be.mp3","Arc North","\u002Fmusic\u002FArc%20North%20-%20Meant%20To%20Be.mp3","2026-06-16T12:30:50.709Z",{"_id":114,"name":115,"artist":116,"url":117,"cover":47,"sort":22,"created_at":118,"updated_at":118,"id":28},"6a3141fa73c9eb8a9b458b3d","Breath and Life.mp3","Audiomachine","\u002Fmusic\u002FAudiomachine%20-%20Breath%20and%20Life.mp3","2026-06-16T12:30:50.715Z",{"_id":120,"name":121,"artist":122,"url":123,"cover":47,"sort":28,"created_at":124,"updated_at":124,"id":34},"6a3141fa73c9eb8a9b458b40","Lonely Dance.mp3","Augus","\u002Fmusic\u002FAugus%20-%20Lonely%20Dance.mp3","2026-06-16T12:30:50.722Z",{"_id":126,"name":127,"artist":128,"url":129,"cover":47,"sort":34,"created_at":130,"updated_at":130,"id":40},"6a3141fa73c9eb8a9b458b43","My Head & My Heart.mp3","Ava Max","\u002Fmusic\u002FAva%20Max%20-%20My%20Head%20%26%20My%20Heart.mp3","2026-06-16T12:30:50.728Z",{"_id":132,"name":133,"artist":134,"url":135,"cover":47,"sort":40,"created_at":136,"updated_at":136,"id":137},"6a3141fa73c9eb8a9b458b46","DDU-DU DDU-DU.mp3","BLACKPINK","\u002Fmusic\u002FBLACKPINK%20-%20DDU-DU%20DDU-DU.mp3","2026-06-16T12:30:50.735Z",15,{"_id":139,"name":140,"artist":141,"url":142,"cover":47,"sort":137,"created_at":143,"updated_at":143,"id":144},"6a3141fa73c9eb8a9b458b49","Apologize.mp3","Besomorph","\u002Fmusic\u002FBesomorph%20-%20Apologize.mp3","2026-06-16T12:30:50.741Z",16,{"_id":146,"name":147,"artist":148,"url":149,"cover":47,"sort":144,"created_at":150,"updated_at":150,"id":151},"6a3141fa73c9eb8a9b458b4c","Dream With You.mp3","Blvmenkind","\u002Fmusic\u002FBlvmenkind%20-%20Dream%20With%20You.mp3","2026-06-16T12:30:50.748Z",17,{"_id":153,"name":154,"artist":155,"url":156,"cover":47,"sort":151,"created_at":157,"updated_at":157,"id":158},"6a3141fa73c9eb8a9b458b4f","Wrap Me In Plastic.mp3","CHROMANCE","\u002Fmusic\u002FCHROMANCE%20-%20Wrap%20Me%20In%20Plastic.mp3","2026-06-16T12:30:50.754Z",18,{"_id":160,"name":161,"artist":162,"url":163,"cover":47,"sort":158,"created_at":164,"updated_at":164,"id":165},"6a3141fa73c9eb8a9b458b52","Outside.mp3","Calvin Harris","\u002Fmusic\u002FCalvin%20Harris%20-%20Outside.mp3","2026-06-16T12:30:50.760Z",19,{"_id":167,"name":168,"artist":162,"url":169,"cover":47,"sort":165,"created_at":170,"updated_at":170,"id":171},"6a3141fa73c9eb8a9b458b55","This Is What You Came For.mp3","\u002Fmusic\u002FCalvin%20Harris%20-%20This%20Is%20What%20You%20Came%20For.mp3","2026-06-16T12:30:50.766Z",20,{"_id":173,"name":174,"artist":175,"url":176,"cover":47,"sort":171,"created_at":177,"updated_at":177,"id":178},"6a3141fa73c9eb8a9b458b58","How To Love.mp3","Cash Cash","\u002Fmusic\u002FCash%20Cash%20-%20How%20To%20Love.mp3","2026-06-16T12:30:50.774Z",21,{"_id":180,"name":181,"artist":182,"url":183,"cover":47,"sort":178,"created_at":184,"updated_at":184,"id":185},"6a3141fa73c9eb8a9b458b5b","We Don't Talk Anymore.mp3","Charlie Puth","\u002Fmusic\u002FCharlie%20Puth%20-%20We%20Don%27t%20Talk%20Anymore.mp3","2026-06-16T12:30:50.785Z",22,{"_id":187,"name":188,"artist":189,"url":190,"cover":47,"sort":185,"created_at":191,"updated_at":191,"id":192},"6a3141fa73c9eb8a9b458b5e","Try.mp3","Colbie Caillat","\u002Fmusic\u002FColbie%20Caillat%20-%20Try.mp3","2026-06-16T12:30:50.792Z",23,{"_id":194,"name":195,"artist":196,"url":197,"cover":47,"sort":192,"created_at":198,"updated_at":198,"id":199},"6a3141fa73c9eb8a9b458b61","BINGBIAN病变.mp3","Cubi","\u002Fmusic\u002FCubi%20-%20BINGBIAN%E7%97%85%E5%8F%98.mp3","2026-06-16T12:30:50.798Z",24,{"_id":201,"name":202,"artist":203,"url":204,"cover":47,"sort":199,"created_at":205,"updated_at":205,"id":206},"6a3141fa73c9eb8a9b458b64","You Know I'll Go Get.mp3","DJ Haning","\u002Fmusic\u002FDJ%20Haning%20-%20You%20Know%20I%27ll%20Go%20Get.mp3","2026-06-16T12:30:50.805Z",25,{"_id":208,"name":209,"artist":210,"url":211,"cover":47,"sort":206,"created_at":212,"updated_at":212,"id":213},"6a3141fa73c9eb8a9b458b67","Let Me Love You.mp3","DJ Snake","\u002Fmusic\u002FDJ%20Snake%20-%20Let%20Me%20Love%20You.mp3","2026-06-16T12:30:50.812Z",26,{"_id":215,"name":168,"artist":216,"url":217,"cover":47,"sort":213,"created_at":218,"updated_at":218,"id":219},"6a3141fa73c9eb8a9b458b6a","Dame Dame","\u002Fmusic\u002FDame%20Dame%20-%20This%20Is%20What%20You%20Came%20For.mp3","2026-06-16T12:30:50.818Z",27,{"_id":221,"name":222,"artist":223,"url":224,"cover":47,"sort":219,"created_at":225,"updated_at":225,"id":226},"6a3141fa73c9eb8a9b458b6d","Coming Home.mp3","Dash Berlin","\u002Fmusic\u002FDash%20Berlin%20-%20Coming%20Home.mp3","2026-06-16T12:30:50.824Z",28,{"_id":228,"name":229,"artist":230,"url":231,"cover":47,"sort":226,"created_at":232,"updated_at":232,"id":233},"6a3141fa73c9eb8a9b458b70","Flames.mp3","David Guetta","\u002Fmusic\u002FDavid%20Guetta%20-%20Flames.mp3","2026-06-16T12:30:50.831Z",29,{"_id":235,"name":236,"artist":237,"url":238,"cover":47,"sort":233,"created_at":239,"updated_at":239,"id":240},"6a3141fa73c9eb8a9b458b73","Betty Boop.mp3","DeeJay Ghost","\u002Fmusic\u002FDeeJay%20Ghost%20-%20Betty%20Boop.mp3","2026-06-16T12:30:50.839Z",30,{"_id":242,"name":243,"artist":244,"url":245,"cover":47,"sort":240,"created_at":246,"updated_at":246,"id":247},"6a3141fa73c9eb8a9b458b76","World.mp3","Denioo","\u002Fmusic\u002FDenioo%20-%20World.mp3","2026-06-16T12:30:50.846Z",31,{"_id":249,"name":250,"artist":251,"url":252,"cover":47,"sort":247,"created_at":253,"updated_at":253,"id":254},"6a3141fa73c9eb8a9b458b79","祝大家快乐.mp3","Dj海洋","\u002Fmusic\u002FDj%E6%B5%B7%E6%B4%8B%20-%20%E7%A5%9D%E5%A4%A7%E5%AE%B6%E5%BF%AB%E4%B9%90.mp3","2026-06-16T12:30:50.852Z",32,{"_id":256,"name":257,"artist":258,"url":259,"cover":47,"sort":254,"created_at":260,"updated_at":260,"id":261},"6a3141fa73c9eb8a9b458b7c","지나갈 테니 (Been Through).mp3","EXO","\u002Fmusic\u002FEXO%20-%20%E1%84%8C%E1%85%B5%E1%84%82%E1%85%A1%E1%84%80%E1%85%A1%E1%86%AF%20%E1%84%90%E1%85%A6%E1%84%82%E1%85%B5%20%28Been%20Through%29.mp3","2026-06-16T12:30:50.859Z",33,{"_id":263,"name":264,"artist":265,"url":266,"cover":47,"sort":261,"created_at":267,"updated_at":267,"id":268},"6a3141fa73c9eb8a9b458b7f","Love Me Like You Do.mp3","Ellie Goulding","\u002Fmusic\u002FEllie%20Goulding%20-%20Love%20Me%20Like%20You%20Do.mp3","2026-06-16T12:30:50.866Z",34,{"_id":270,"name":271,"artist":272,"url":273,"cover":47,"sort":268,"created_at":274,"updated_at":274,"id":275},"6a3141fa73c9eb8a9b458b82","Umbrella (3).mp3","Ember Island","\u002Fmusic\u002FEmber%20Island%20-%20Umbrella%20%283%29.mp3","2026-06-16T12:30:50.872Z",35,{"_id":277,"name":278,"artist":279,"url":280,"cover":47,"sort":275,"created_at":281,"updated_at":281,"id":282},"6a3141fa73c9eb8a9b458b85","Lost & Found.mp3","Embody","\u002Fmusic\u002FEmbody%20-%20Lost%20%26%20Found.mp3","2026-06-16T12:30:50.878Z",36,{"_id":284,"name":285,"artist":286,"url":287,"cover":47,"sort":282,"created_at":288,"updated_at":288,"id":289},"6a3141fa73c9eb8a9b458b88","The Monster.mp3","Eminem","\u002Fmusic\u002FEminem%20-%20The%20Monster.mp3","2026-06-16T12:30:50.885Z",37,{"_id":291,"name":292,"artist":293,"url":294,"cover":47,"sort":289,"created_at":295,"updated_at":295,"id":296},"6a3141fa73c9eb8a9b458b8b","Burak Yeter.mp3","Fallinf","\u002Fmusic\u002FFallinf%20-%20Burak%20Yeter.mp3","2026-06-16T12:30:50.892Z",38,{"_id":298,"name":299,"artist":300,"url":301,"cover":47,"sort":296,"created_at":302,"updated_at":302,"id":303},"6a3141fa73c9eb8a9b458b8e","Worth It.mp3","Fifth Harmony","\u002Fmusic\u002FFifth%20Harmony%20-%20Worth%20It.mp3","2026-06-16T12:30:50.898Z",39,{"_id":305,"name":306,"artist":307,"url":308,"cover":47,"sort":303,"created_at":309,"updated_at":309,"id":310},"6a3141fa73c9eb8a9b458b91","Jealousy(Dance Radio).mp3","French Kiss","\u002Fmusic\u002FFrench%20Kiss%20-%20Jealousy%28Dance%20Radio%29.mp3","2026-06-16T12:30:50.905Z",40,{"_id":312,"name":313,"artist":314,"url":315,"cover":47,"sort":310,"created_at":316,"updated_at":316,"id":317},"6a3141fa73c9eb8a9b458b94","1,2,3,4(One, Two, Three, Four).mp3","Funbeat","\u002Fmusic\u002FFunbeat%20-%201%2C2%2C3%2C4%28One%2C%20Two%2C%20Three%2C%20Four%29.mp3","2026-06-16T12:30:50.912Z",41,{"_id":319,"name":320,"artist":321,"url":322,"cover":47,"sort":317,"created_at":323,"updated_at":323,"id":324},"6a3141fa73c9eb8a9b458b97","Somebody That I Used to Know.mp3","Gotye","\u002Fmusic\u002FGotye%20-%20Somebody%20That%20I%20Used%20to%20Know.mp3","2026-06-16T12:30:50.918Z",42,{"_id":326,"name":327,"artist":328,"url":329,"cover":47,"sort":324,"created_at":330,"updated_at":330,"id":331},"6a3141fa73c9eb8a9b458b9a","Bulletproof.mp3","Griffin Oskar","\u002Fmusic\u002FGriffin%20Oskar%20-%20Bulletproof.mp3","2026-06-16T12:30:50.924Z",43,{"_id":333,"name":334,"artist":335,"url":336,"cover":47,"sort":331,"created_at":337,"updated_at":337,"id":338},"6a3141fa73c9eb8a9b458b9d","Sold Out.mp3","Hawk Nelson","\u002Fmusic\u002FHawk%20Nelson%20-%20Sold%20Out.mp3","2026-06-16T12:30:50.930Z",44,{"_id":340,"name":341,"artist":342,"url":343,"cover":47,"sort":338,"created_at":344,"updated_at":344,"id":345},"6a3141fa73c9eb8a9b458ba0","Sound of Walking Away.mp3","ILLENIUM","\u002Fmusic\u002FILLENIUM%20-%20Sound%20of%20Walking%20Away.mp3","2026-06-16T12:30:50.937Z",45,{"_id":347,"name":348,"artist":349,"url":350,"cover":47,"sort":345,"created_at":351,"updated_at":351,"id":352},"6a3141fa73c9eb8a9b458ba3","Shots.mp3","Imagine Dragons","\u002Fmusic\u002FImagine%20Dragons%20-%20Shots.mp3","2026-06-16T12:30:50.944Z",46,{"_id":354,"name":355,"artist":356,"url":357,"cover":47,"sort":352,"created_at":358,"updated_at":358,"id":359},"6a3141fa73c9eb8a9b458ba6","Power(In Your Soul).mp3","Interupt","\u002Fmusic\u002FInterupt%20-%20Power%28In%20Your%20Soul%29.mp3","2026-06-16T12:30:50.952Z",47,{"_id":361,"name":362,"artist":363,"url":364,"cover":47,"sort":359,"created_at":365,"updated_at":365,"id":366},"6a3141fa73c9eb8a9b458ba9","Mi Gente.mp3","J. Balvin","\u002Fmusic\u002FJ.%20Balvin%20-%20Mi%20Gente.mp3","2026-06-16T12:30:50.959Z",48,{"_id":368,"name":369,"artist":370,"url":371,"cover":47,"sort":366,"created_at":372,"updated_at":372,"id":373},"6a3141fa73c9eb8a9b458bac","Infinity.mp3","Jaymes Young","\u002Fmusic\u002FJaymes%20Young%20-%20Infinity.mp3","2026-06-16T12:30:50.964Z",49,{"_id":375,"name":376,"artist":377,"url":378,"cover":47,"sort":373,"created_at":379,"updated_at":379,"id":380},"6a3141fa73c9eb8a9b458baf","Blame.mp3","John Newman","\u002Fmusic\u002FJohn%20Newman%20-%20Blame.mp3","2026-06-16T12:30:50.971Z",50,{"_id":382,"name":383,"artist":384,"url":385,"cover":47,"sort":380,"created_at":386,"updated_at":386,"id":387},"6a3141fa73c9eb8a9b458bb2","As Long As You Love Me.mp3","Justin Bieber","\u002Fmusic\u002FJustin%20Bieber%20-%20As%20Long%20As%20You%20Love%20Me.mp3","2026-06-16T12:30:50.977Z",51,{"_id":389,"name":390,"artist":391,"url":392,"cover":47,"sort":387,"created_at":393,"updated_at":393,"id":394},"6a3141fa73c9eb8a9b458bb5","Play.mp3","K-391","\u002Fmusic\u002FK-391%20-%20Play.mp3","2026-06-16T12:30:50.983Z",52,{"_id":396,"name":397,"artist":398,"url":399,"cover":47,"sort":394,"created_at":400,"updated_at":400,"id":401},"6a3141fa73c9eb8a9b458bb8","Daydreamer(Radio Edit).mp3","KarlK","\u002Fmusic\u002FKarlK%20-%20Daydreamer%28Radio%20Edit%29.mp3","2026-06-16T12:30:50.989Z",53,{"_id":403,"name":404,"artist":405,"url":406,"cover":47,"sort":401,"created_at":407,"updated_at":407,"id":408},"6a3141fa73c9eb8a9b458bbb","Monsters.mp3","Katie Sky","\u002Fmusic\u002FKatie%20Sky%20-%20Monsters.mp3","2026-06-16T12:30:50.995Z",54,{"_id":410,"name":411,"artist":412,"url":413,"cover":47,"sort":408,"created_at":414,"updated_at":414,"id":415},"6a3141fb73c9eb8a9b458bbe","Stronger (What Doesn't Kill You).mp3","Kelly Clarkson","\u002Fmusic\u002FKelly%20Clarkson%20-%20Stronger%20%28What%20Doesn%27t%20Kill%20You%29.mp3","2026-06-16T12:30:51.002Z",55,{"_id":417,"name":418,"artist":419,"url":420,"cover":47,"sort":415,"created_at":421,"updated_at":421,"id":422},"6a3141fb73c9eb8a9b458bc1","Forever Yours.mp3","Kygo","\u002Fmusic\u002FKygo%20-%20Forever%20Yours.mp3","2026-06-16T12:30:51.019Z",56,{"_id":424,"name":425,"artist":419,"url":426,"cover":47,"sort":422,"created_at":427,"updated_at":427,"id":428},"6a3141fb73c9eb8a9b458bc4","It Ain't Me.mp3","\u002Fmusic\u002FKygo%20-%20It%20Ain%27t%20Me.mp3","2026-06-16T12:30:51.025Z",57,{"_id":430,"name":431,"artist":432,"url":433,"cover":47,"sort":428,"created_at":434,"updated_at":434,"id":435},"6a3141fb73c9eb8a9b458bc7","The Cure.mp3","Lady Gaga","\u002Fmusic\u002FLady%20Gaga%20-%20The%20Cure.mp3","2026-06-16T12:30:51.031Z",58,{"_id":437,"name":438,"artist":439,"url":440,"cover":47,"sort":435,"created_at":441,"updated_at":441,"id":442},"6a3141fb73c9eb8a9b458bca","The Show.mp3","Lenka","\u002Fmusic\u002FLenka%20-%20The%20Show.mp3","2026-06-16T12:30:51.038Z",59,{"_id":444,"name":445,"artist":446,"url":447,"cover":47,"sort":442,"created_at":448,"updated_at":448,"id":449},"6a3141fb73c9eb8a9b458bcd","Are You With Me(ARNXT041).mp3","Lost Frequencies","\u002Fmusic\u002FLost%20Frequencies%20-%20Are%20You%20With%20Me%28ARNXT041%29.mp3","2026-06-16T12:30:51.045Z",60,{"_id":451,"name":452,"artist":446,"url":453,"cover":47,"sort":449,"created_at":454,"updated_at":454,"id":455},"6a3141fb73c9eb8a9b458bd0","Reality.mp3","\u002Fmusic\u002FLost%20Frequencies%20-%20Reality.mp3","2026-06-16T12:30:51.054Z",61,{"_id":457,"name":458,"artist":459,"url":460,"cover":47,"sort":455,"created_at":461,"updated_at":461,"id":462},"6a3141fb73c9eb8a9b458bd3","Slow Down.mp3","Madnap","\u002Fmusic\u002FMadnap%20-%20Slow%20Down.mp3","2026-06-16T12:30:51.062Z",62,{"_id":464,"name":465,"artist":466,"url":467,"cover":47,"sort":462,"created_at":468,"updated_at":468,"id":469},"6a3141fb73c9eb8a9b458bd6","Lean On.mp3","Major Lazer","\u002Fmusic\u002FMajor%20Lazer%20-%20Lean%20On.mp3","2026-06-16T12:30:51.068Z",63,{"_id":471,"name":472,"artist":473,"url":474,"cover":47,"sort":469,"created_at":475,"updated_at":475,"id":476},"6a3141fb73c9eb8a9b458bd9","Superstar.mp3","Mandee","\u002Fmusic\u002FMandee%20-%20Superstar.mp3","2026-06-16T12:30:51.079Z",64,{"_id":478,"name":479,"artist":480,"url":481,"cover":47,"sort":476,"created_at":482,"updated_at":482,"id":483},"6a3141fb73c9eb8a9b458bdc","Animals.mp3","Maroon 5","\u002Fmusic\u002FMaroon%205%20-%20Animals.mp3","2026-06-16T12:30:51.085Z",65,{"_id":485,"name":486,"artist":480,"url":487,"cover":47,"sort":483,"created_at":488,"updated_at":488,"id":489},"6a3141fb73c9eb8a9b458bdf","Maps.mp3","\u002Fmusic\u002FMaroon%205%20-%20Maps.mp3","2026-06-16T12:30:51.097Z",66,{"_id":491,"name":492,"artist":493,"url":494,"cover":47,"sort":489,"created_at":495,"updated_at":495,"id":496},"6a3141fb73c9eb8a9b458be2","FRIENDS.mp3","Marshmello","\u002Fmusic\u002FMarshmello%20-%20FRIENDS.mp3","2026-06-16T12:30:51.110Z",67,{"_id":498,"name":499,"artist":500,"url":501,"cover":47,"sort":496,"created_at":502,"updated_at":502,"id":503},"6a3141fb73c9eb8a9b458be5","Drown(feat. Clinton Kane).mp3","Martin Garrix","\u002Fmusic\u002FMartin%20Garrix%20-%20Drown%28feat.%20Clinton%20Kane%29.mp3","2026-06-16T12:30:51.136Z",68,{"_id":505,"name":506,"artist":500,"url":507,"cover":47,"sort":503,"created_at":508,"updated_at":508,"id":509},"6a3141fb73c9eb8a9b458be8","High On Life.mp3","\u002Fmusic\u002FMartin%20Garrix%20-%20High%20On%20Life.mp3","2026-06-16T12:30:51.156Z",69,{"_id":511,"name":512,"artist":500,"url":513,"cover":47,"sort":509,"created_at":514,"updated_at":514,"id":515},"6a3141fb73c9eb8a9b458beb","Hold On(feat. Michel Zitron).mp3","\u002Fmusic\u002FMartin%20Garrix%20-%20Hold%20On%28feat.%20Michel%20Zitron%29.mp3","2026-06-16T12:30:51.168Z",70,{"_id":517,"name":518,"artist":500,"url":519,"cover":47,"sort":515,"created_at":520,"updated_at":520,"id":521},"6a3141fb73c9eb8a9b458bee","So Far Away.mp3","\u002Fmusic\u002FMartin%20Garrix%20-%20So%20Far%20Away.mp3","2026-06-16T12:30:51.178Z",71,{"_id":523,"name":524,"artist":500,"url":525,"cover":47,"sort":521,"created_at":526,"updated_at":526,"id":527},"6a3141fb73c9eb8a9b458bf1","There For You.mp3","\u002Fmusic\u002FMartin%20Garrix%20-%20There%20For%20You.mp3","2026-06-16T12:30:51.188Z",72,{"_id":529,"name":530,"artist":531,"url":532,"cover":47,"sort":527,"created_at":533,"updated_at":533,"id":534},"6a3141fb73c9eb8a9b458bf4","Solo Dance.mp3","Martin Jensen","\u002Fmusic\u002FMartin%20Jensen%20-%20Solo%20Dance.mp3","2026-06-16T12:30:51.200Z",73,{"_id":536,"name":537,"artist":538,"url":539,"cover":47,"sort":534,"created_at":540,"updated_at":540,"id":541},"6a3141fb73c9eb8a9b458bf7","Once upon a Time.mp3","Max Oazo","\u002Fmusic\u002FMax%20Oazo%20-%20Once%20upon%20a%20Time.mp3","2026-06-16T12:30:51.213Z",74,{"_id":543,"name":544,"artist":545,"url":546,"cover":47,"sort":541,"created_at":547,"updated_at":547,"id":548},"6a3141fb73c9eb8a9b458bfa","Play Date.mp3","Melanie Martinez","\u002Fmusic\u002FMelanie%20Martinez%20-%20Play%20Date.mp3","2026-06-16T12:30:51.223Z",75,{"_id":550,"name":551,"artist":552,"url":553,"cover":47,"sort":548,"created_at":554,"updated_at":554,"id":555},"6a3141fb73c9eb8a9b458bfd","Tu vivi nell'aria.mp3","Miani","\u002Fmusic\u002FMiani%20-%20Tu%20vivi%20nell%27aria.mp3","2026-06-16T12:30:51.242Z",76,{"_id":557,"name":558,"artist":559,"url":560,"cover":47,"sort":555,"created_at":561,"updated_at":561,"id":562},"6a3141fb73c9eb8a9b458c00","The Ocean.mp3","Mike Perry","\u002Fmusic\u002FMike%20Perry%20-%20The%20Ocean.mp3","2026-06-16T12:30:51.260Z",77,{"_id":564,"name":565,"artist":566,"url":567,"cover":47,"sort":562,"created_at":568,"updated_at":568,"id":569},"6a3141fb73c9eb8a9b458c03","Move Up(Lost Gravity).mp3","Mr. Polska","\u002Fmusic\u002FMr.%20Polska%20-%20Move%20Up%28Lost%20Gravity%29.mp3","2026-06-16T12:30:51.269Z",78,{"_id":571,"name":572,"artist":573,"url":574,"cover":47,"sort":569,"created_at":575,"updated_at":575,"id":576},"6a3141fb73c9eb8a9b458c06","DuskTillDawn.mp3","Nike","\u002Fmusic\u002FNike%20-%20DuskTillDawn.mp3","2026-06-16T12:30:51.279Z",79,{"_id":578,"name":579,"artist":580,"url":581,"cover":47,"sort":576,"created_at":582,"updated_at":582,"id":583},"6a3141fb73c9eb8a9b458c09","That Girl.mp3","Olly Murs","\u002Fmusic\u002FOlly%20Murs%20-%20That%20Girl.mp3","2026-06-16T12:30:51.291Z",80,{"_id":585,"name":586,"artist":587,"url":588,"cover":47,"sort":583,"created_at":589,"updated_at":589,"id":590},"6a3141fb73c9eb8a9b458c0c","Closer.mp3","R3hab","\u002Fmusic\u002FR3hab%20-%20Closer.mp3","2026-06-16T12:30:51.302Z",81,{"_id":592,"name":593,"artist":587,"url":594,"cover":47,"sort":590,"created_at":595,"updated_at":595,"id":596},"6a3141fb73c9eb8a9b458c0f","Sakura.mp3","\u002Fmusic\u002FR3hab%20-%20Sakura.mp3","2026-06-16T12:30:51.314Z",82,{"_id":598,"name":599,"artist":600,"url":601,"cover":47,"sort":596,"created_at":602,"updated_at":602,"id":603},"6a3141fb73c9eb8a9b458c12","Lone Ranger.mp3","Rachel Platten","\u002Fmusic\u002FRachel%20Platten%20-%20Lone%20Ranger.mp3","2026-06-16T12:30:51.327Z",83,{"_id":605,"name":606,"artist":607,"url":608,"cover":47,"sort":603,"created_at":609,"updated_at":609,"id":610},"6a3141fb73c9eb8a9b458c15","Колыбельная.mp3","Rauf & Faik","\u002Fmusic\u002FRauf%20%26%20Faik%20-%20%D0%9A%D0%BE%D0%BB%D1%8B%D0%B1%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F.mp3","2026-06-16T12:30:51.337Z",84,{"_id":612,"name":613,"artist":614,"url":615,"cover":47,"sort":610,"created_at":616,"updated_at":616,"id":617},"6a3141fb73c9eb8a9b458c18","Diamonds.mp3","Rihanna","\u002Fmusic\u002FRihanna%20-%20Diamonds.mp3","2026-06-16T12:30:51.346Z",85,{"_id":619,"name":620,"artist":621,"url":622,"cover":47,"sort":617,"created_at":623,"updated_at":623,"id":624},"6a3141fb73c9eb8a9b458c1b","Light.mp3","San Holo","\u002Fmusic\u002FSan%20Holo%20-%20Light.mp3","2026-06-16T12:30:51.355Z",86,{"_id":626,"name":627,"artist":628,"url":629,"cover":47,"sort":624,"created_at":630,"updated_at":630,"id":631},"6a3141fb73c9eb8a9b458c1e","Dancing With Your Ghost.mp3","Sasha Sloan","\u002Fmusic\u002FSasha%20Sloan%20-%20Dancing%20With%20Your%20Ghost.mp3","2026-06-16T12:30:51.365Z",87,{"_id":633,"name":634,"artist":635,"url":636,"cover":47,"sort":631,"created_at":637,"updated_at":637,"id":638},"6a3141fb73c9eb8a9b458c21","Limitless（无限）.mp3","SeVen.13","\u002Fmusic\u002FSeVen.13%20-%20Limitless%EF%BC%88%E6%97%A0%E9%99%90%EF%BC%89.mp3","2026-06-16T12:30:51.371Z",88,{"_id":640,"name":641,"artist":642,"url":643,"cover":47,"sort":638,"created_at":644,"updated_at":644,"id":645},"6a3141fb73c9eb8a9b458c24","Wolves.mp3","Selena Gomez","\u002Fmusic\u002FSelena%20Gomez%20-%20Wolves.mp3","2026-06-16T12:30:51.394Z",89,{"_id":647,"name":648,"artist":649,"url":650,"cover":47,"sort":645,"created_at":651,"updated_at":651,"id":652},"6a3141fb73c9eb8a9b458c27","Señorita.mp3","Shawn Mendes","\u002Fmusic\u002FShawn%20Mendes%20-%20Sen%CC%83orita.mp3","2026-06-16T12:30:51.400Z",90,{"_id":654,"name":655,"artist":656,"url":657,"cover":47,"sort":652,"created_at":658,"updated_at":658,"id":659},"6a3141fb73c9eb8a9b458c2a","Chandelier.mp3","Sia","\u002Fmusic\u002FSia%20-%20Chandelier.mp3","2026-06-16T12:30:51.406Z",91,{"_id":661,"name":662,"artist":656,"url":663,"cover":47,"sort":659,"created_at":664,"updated_at":664,"id":665},"6a3141fb73c9eb8a9b458c2d","Cheap Thrills.mp3","\u002Fmusic\u002FSia%20-%20Cheap%20Thrills.mp3","2026-06-16T12:30:51.411Z",92,{"_id":667,"name":668,"artist":656,"url":669,"cover":47,"sort":665,"created_at":670,"updated_at":670,"id":671},"6a3141fb73c9eb8a9b458c30","Move Your Body.mp3","\u002Fmusic\u002FSia%20-%20Move%20Your%20Body.mp3","2026-06-16T12:30:51.418Z",93,{"_id":673,"name":674,"artist":656,"url":675,"cover":47,"sort":671,"created_at":676,"updated_at":676,"id":677},"6a3141fb73c9eb8a9b458c33","The Greatest.mp3","\u002Fmusic\u002FSia%20-%20The%20Greatest.mp3","2026-06-16T12:30:51.423Z",94,{"_id":679,"name":680,"artist":656,"url":681,"cover":47,"sort":677,"created_at":682,"updated_at":682,"id":683},"6a3141fb73c9eb8a9b458c36","Unstoppable.mp3","\u002Fmusic\u002FSia%20-%20Unstoppable.mp3","2026-06-16T12:30:51.429Z",95,{"_id":685,"name":222,"artist":686,"url":687,"cover":47,"sort":683,"created_at":688,"updated_at":688,"id":689},"6a3141fb73c9eb8a9b458c39","Skylar Grey","\u002Fmusic\u002FSkylar%20Grey%20-%20Coming%20Home.mp3","2026-06-16T12:30:51.435Z",96,{"_id":691,"name":692,"artist":693,"url":694,"cover":47,"sort":689,"created_at":695,"updated_at":695,"id":696},"6a3141fb73c9eb8a9b458c3c","So Long (feat. Madi).mp3","Slushii","\u002Fmusic\u002FSlushii%20-%20So%20Long%20%28feat.%20Madi%29.mp3","2026-06-16T12:30:51.448Z",97,{"_id":698,"name":431,"artist":699,"url":700,"cover":47,"sort":696,"created_at":701,"updated_at":701,"id":702},"6a3141fb73c9eb8a9b458c3f","Spiros Hamza","\u002Fmusic\u002FSpiros%20Hamza%20-%20The%20Cure.mp3","2026-06-16T12:30:51.453Z",98,{"_id":704,"name":705,"artist":706,"url":707,"cover":47,"sort":702,"created_at":708,"updated_at":708,"id":709},"6a3141fb73c9eb8a9b458c42","Middle Of The Night.mp3","Taiga","\u002Fmusic\u002FTaiga%20-%20Middle%20Of%20The%20Night.mp3","2026-06-16T12:30:51.463Z",99,{"_id":711,"name":712,"artist":713,"url":714,"cover":47,"sort":709,"created_at":715,"updated_at":715,"id":716},"6a3141fb73c9eb8a9b458c45","Da Da Da.mp3","Tanir","\u002Fmusic\u002FTanir%20-%20Da%20Da%20Da.mp3","2026-06-16T12:30:51.469Z",100,{"_id":718,"name":719,"artist":720,"url":721,"cover":47,"sort":716,"created_at":722,"updated_at":722,"id":723},"6a3141fb73c9eb8a9b458c48","Welcome To New York.mp3","Taylor Swift","\u002Fmusic\u002FTaylor%20Swift%20-%20Welcome%20To%20New%20York.mp3","2026-06-16T12:30:51.474Z",101,{"_id":725,"name":726,"artist":727,"url":728,"cover":47,"sort":723,"created_at":729,"updated_at":729,"id":730},"6a3141fb73c9eb8a9b458c4b","Don't Let Me Down.mp3","The Chainsmokers","\u002Fmusic\u002FThe%20Chainsmokers%20-%20Don%27t%20Let%20Me%20Down.mp3","2026-06-16T12:30:51.484Z",102,{"_id":732,"name":733,"artist":727,"url":734,"cover":47,"sort":730,"created_at":735,"updated_at":735,"id":736},"6a3141fb73c9eb8a9b458c4e","Something Just Like This.mp3","\u002Fmusic\u002FThe%20Chainsmokers%20-%20Something%20Just%20Like%20This.mp3","2026-06-16T12:30:51.489Z",103,{"_id":738,"name":739,"artist":740,"url":741,"cover":47,"sort":736,"created_at":742,"updated_at":742,"id":743},"6a3141fb73c9eb8a9b458c51","Watch Me Work.mp3","Tinashe","\u002Fmusic\u002FTinashe%20-%20Watch%20Me%20Work.mp3","2026-06-16T12:30:51.495Z",104,{"_id":745,"name":746,"artist":747,"url":748,"cover":47,"sort":743,"created_at":749,"updated_at":749,"id":750},"6a3141fb73c9eb8a9b458c54","Fearless Pt. II.mp3","Tule","\u002Fmusic\u002FTule%20-%20Fearless%20Pt.%20II.mp3","2026-06-16T12:30:51.503Z",105,{"_id":752,"name":753,"artist":754,"url":755,"cover":47,"sort":750,"created_at":756,"updated_at":756,"id":757},"6a3141fb73c9eb8a9b458c57","All For Love.mp3","Tungevaag & Raaban","\u002Fmusic\u002FTungevaag%20%26%20Raaban%20-%20All%20For%20Love.mp3","2026-06-16T12:30:51.509Z",106,{"_id":759,"name":760,"artist":754,"url":761,"cover":47,"sort":757,"created_at":762,"updated_at":762,"id":763},"6a3141fb73c9eb8a9b458c5a","Samsara.mp3","\u002Fmusic\u002FTungevaag%20%26%20Raaban%20-%20Samsara.mp3","2026-06-16T12:30:51.516Z",107,{"_id":765,"name":766,"artist":767,"url":768,"cover":47,"sort":763,"created_at":769,"updated_at":769,"id":770},"6a3141fb73c9eb8a9b458c5d","Nevada.mp3","Vicetone","\u002Fmusic\u002FVicetone%20-%20Nevada.mp3","2026-06-16T12:30:51.525Z",108,{"_id":772,"name":773,"artist":767,"url":774,"cover":47,"sort":770,"created_at":775,"updated_at":775,"id":776},"6a3141fb73c9eb8a9b458c60","Walk Thru Fire (1).mp3","\u002Fmusic\u002FVicetone%20-%20Walk%20Thru%20Fire%20%281%29.mp3","2026-06-16T12:30:51.537Z",109,{"_id":778,"name":779,"artist":767,"url":780,"cover":47,"sort":776,"created_at":781,"updated_at":781,"id":782},"6a3141fb73c9eb8a9b458c63","Walk Thru Fire.mp3","\u002Fmusic\u002FVicetone%20-%20Walk%20Thru%20Fire.mp3","2026-06-16T12:30:51.545Z",110,{"_id":784,"name":785,"artist":767,"url":786,"cover":47,"sort":782,"created_at":787,"updated_at":787,"id":788},"6a3141fb73c9eb8a9b458c66","Way Back.mp3","\u002Fmusic\u002FVicetone%20-%20Way%20Back.mp3","2026-06-16T12:30:51.551Z",111,{"_id":790,"name":791,"artist":792,"url":793,"cover":47,"sort":788,"created_at":794,"updated_at":794,"id":795},"6a3141fb73c9eb8a9b458c69","Falling Down.mp3","Wild Cards","\u002Fmusic\u002FWild%20Cards%20-%20Falling%20Down.mp3","2026-06-16T12:30:51.557Z",112,{"_id":797,"name":798,"artist":799,"url":800,"cover":47,"sort":795,"created_at":801,"updated_at":801,"id":802},"6a3141fb73c9eb8a9b458c6c","NUMB.mp3","XXXTentacion","\u002Fmusic\u002FXXXTentacion%20-%20NUMB.mp3","2026-06-16T12:30:51.563Z",113,{"_id":804,"name":805,"artist":806,"url":807,"cover":47,"sort":802,"created_at":808,"updated_at":808,"id":809},"6a3141fb73c9eb8a9b458c6f","Dusk Till Dawn.mp3","ZAYN","\u002Fmusic\u002FZAYN%20-%20Dusk%20Till%20Dawn.mp3","2026-06-16T12:30:51.568Z",114,{"_id":811,"name":812,"artist":813,"url":814,"cover":47,"sort":809,"created_at":815,"updated_at":815,"id":816},"6a3141fb73c9eb8a9b458c72","East of Eden.mp3","Zella Day","\u002Fmusic\u002FZella%20Day%20-%20East%20of%20Eden.mp3","2026-06-16T12:30:51.574Z",115,{"_id":818,"name":819,"artist":820,"url":821,"cover":47,"sort":816,"created_at":822,"updated_at":822,"id":823},"6a3141fb73c9eb8a9b458c75","18 Mne Uzhe.mp3","ai8","\u002Fmusic\u002Fai8%20-%2018%20Mne%20Uzhe.mp3","2026-06-16T12:30:51.580Z",116,{"_id":825,"name":826,"artist":827,"url":828,"cover":47,"sort":823,"created_at":829,"updated_at":829,"id":830},"6a3141fb73c9eb8a9b458c78","gone.mp3","convolk","\u002Fmusic\u002Fconvolk%20-%20gone.mp3","2026-06-16T12:30:51.587Z",117,{"_id":832,"name":833,"artist":834,"url":835,"cover":47,"sort":830,"created_at":836,"updated_at":836,"id":837},"6a3141fb73c9eb8a9b458c7b","내가 웃는게 아니야.mp3","리쌍","\u002Fmusic\u002F%E1%84%85%E1%85%B5%E1%84%8A%E1%85%A1%E1%86%BC%20-%20%E1%84%82%E1%85%A2%E1%84%80%E1%85%A1%20%E1%84%8B%E1%85%AE%E1%86%BA%E1%84%82%E1%85%B3%E1%86%AB%E1%84%80%E1%85%A6%20%E1%84%8B%E1%85%A1%E1%84%82%E1%85%B5%E1%84%8B%E1%85%A3.mp3","2026-06-16T12:30:51.592Z",118,{"_id":839,"name":840,"artist":841,"url":842,"cover":47,"sort":837,"created_at":843,"updated_at":843,"id":844},"6a3141fb73c9eb8a9b458c7e","Summer.mp3","久石让","\u002Fmusic\u002F%E4%B9%85%E7%9F%B3%E8%AE%A9%20-%20Summer.mp3","2026-06-16T12:30:51.598Z",119,{"_id":846,"name":847,"artist":848,"url":849,"cover":47,"sort":844,"created_at":850,"updated_at":850,"id":851},"6a3141fb73c9eb8a9b458c81","빙고.mp3","乌龟组合","\u002Fmusic\u002F%E4%B9%8C%E9%BE%9F%E7%BB%84%E5%90%88%20-%20%E1%84%87%E1%85%B5%E1%86%BC%E1%84%80%E1%85%A9.mp3","2026-06-16T12:30:51.608Z",120,{"_id":853,"name":854,"artist":855,"url":856,"cover":47,"sort":851,"created_at":857,"updated_at":857,"id":858},"6a3141fb73c9eb8a9b458c84","Drown.mp3","亿阳","\u002Fmusic\u002F%E4%BA%BF%E9%98%B3%20-%20Drown.mp3","2026-06-16T12:30:51.614Z",121,{"_id":860,"name":861,"artist":862,"url":863,"cover":47,"sort":858,"created_at":864,"updated_at":864,"id":865},"6a3141fb73c9eb8a9b458c87","Ring Ring Ring.mp3","何曼婷","\u002Fmusic\u002F%E4%BD%95%E6%9B%BC%E5%A9%B7%20-%20Ring%20Ring%20Ring.mp3","2026-06-16T12:30:51.620Z",122,{"_id":867,"name":868,"artist":869,"url":870,"cover":47,"sort":865,"created_at":871,"updated_at":871,"id":872},"6a3141fb73c9eb8a9b458c8a","微微.mp3","傅如乔","\u002Fmusic\u002F%E5%82%85%E5%A6%82%E4%B9%94%20-%20%E5%BE%AE%E5%BE%AE.mp3","2026-06-16T12:30:51.627Z",123,{"_id":874,"name":875,"artist":876,"url":877,"cover":47,"sort":872,"created_at":878,"updated_at":878,"id":879},"6a3141fb73c9eb8a9b458c8d","Be Your Sun.mp3","剑圣","\u002Fmusic\u002F%E5%89%91%E5%9C%A3%20-%20Be%20Your%20Sun.mp3","2026-06-16T12:30:51.633Z",124,{"_id":881,"name":882,"artist":883,"url":884,"cover":47,"sort":879,"created_at":885,"updated_at":885,"id":886},"6a3141fb73c9eb8a9b458c90","마리아 (Maria) (4416 Flac).mp3","华莎","\u002Fmusic\u002F%E5%8D%8E%E8%8E%8E%20-%2002%20%E1%84%92%E1%85%AA%E1%84%89%E1%85%A1%20-%20%E1%84%86%E1%85%A1%E1%84%85%E1%85%B5%E1%84%8B%E1%85%A1%20%28Maria%29%20%284416%20Flac%29.mp3","2026-06-16T12:30:51.638Z",125,{"_id":888,"name":889,"artist":890,"url":891,"cover":47,"sort":886,"created_at":892,"updated_at":892,"id":893},"6a3141fb73c9eb8a9b458c93","Soap.mp3","单依纯","\u002Fmusic\u002F%E5%8D%95%E4%BE%9D%E7%BA%AF%20-%20Soap.mp3","2026-06-16T12:30:51.648Z",126,{"_id":895,"name":896,"artist":897,"url":898,"cover":47,"sort":893,"created_at":899,"updated_at":899,"id":900},"6a3141fb73c9eb8a9b458c96","情歌王.mp3","古巨基","\u002Fmusic\u002F%E5%8F%A4%E5%B7%A8%E5%9F%BA%20-%20%E6%83%85%E6%AD%8C%E7%8E%8B.mp3","2026-06-16T12:30:51.658Z",127,{"_id":902,"name":903,"artist":904,"url":905,"cover":47,"sort":900,"created_at":906,"updated_at":906,"id":907},"6a3141fb73c9eb8a9b458c99","Summertime Sadnes.mp3","可爱的小团团","\u002Fmusic\u002F%E5%8F%AF%E7%88%B1%E7%9A%84%E5%B0%8F%E5%9B%A2%E5%9B%A2%20-%20Summertime%C2%A0Sadnes.mp3","2026-06-16T12:30:51.667Z",128,{"_id":909,"name":910,"artist":911,"url":912,"cover":47,"sort":907,"created_at":913,"updated_at":913,"id":914},"6a3141fb73c9eb8a9b458c9c","La la.mp3","安筱冷","\u002Fmusic\u002F%E5%AE%89%E7%AD%B1%E5%86%B7%20-%20La%20la.mp3","2026-06-16T12:30:51.676Z",129,{"_id":916,"name":917,"artist":918,"url":919,"cover":47,"sort":914,"created_at":920,"updated_at":920,"id":921},"6a3141fb73c9eb8a9b458c9f","信仰.mp3","小淼","\u002Fmusic\u002F%E5%B0%8F%E6%B7%BC%20-%20%E4%BF%A1%E4%BB%B0.mp3","2026-06-16T12:30:51.696Z",130,{"_id":923,"name":924,"artist":925,"url":926,"cover":47,"sort":921,"created_at":927,"updated_at":927,"id":928},"6a3141fb73c9eb8a9b458ca2","Antoine Chambe.mp3","废博","\u002Fmusic\u002F%E5%BA%9F%E5%8D%9A%20-%20Antoine%20Chambe.mp3","2026-06-16T12:30:51.706Z",131,{"_id":930,"name":931,"artist":932,"url":933,"cover":47,"sort":928,"created_at":934,"updated_at":934,"id":935},"6a3141fb73c9eb8a9b458ca5","What Lovers Do.mp3","抖音热歌DJ","\u002Fmusic\u002F%E6%8A%96%E9%9F%B3%E7%83%AD%E6%AD%8CDJ%20-%20What%20Lovers%20Do.mp3","2026-06-16T12:30:51.716Z",132,{"_id":937,"name":938,"artist":939,"url":940,"cover":47,"sort":935,"created_at":941,"updated_at":941,"id":942},"6a3141fb73c9eb8a9b458ca8","123我爱你.mp3","新乐尘符","\u002Fmusic\u002F%E6%96%B0%E4%B9%90%E5%B0%98%E7%AC%A6%20-%20123%E6%88%91%E7%88%B1%E4%BD%A0.mp3","2026-06-16T12:30:51.724Z",133,{"_id":944,"name":945,"artist":946,"url":947,"cover":47,"sort":942,"created_at":948,"updated_at":948,"id":949},"6a3141fb73c9eb8a9b458cab","燕无歇（DJ黑桃A）feat.是七叔呢.mp3","是七叔呢","\u002Fmusic\u002F%E6%98%AF%E4%B8%83%E5%8F%94%E5%91%A2%20-%20%E7%87%95%E6%97%A0%E6%AD%87%EF%BC%88DJ%E9%BB%91%E6%A1%83A%EF%BC%89feat.%E6%98%AF%E4%B8%83%E5%8F%94%E5%91%A2.mp3","2026-06-16T12:30:51.730Z",134,{"_id":951,"name":952,"artist":953,"url":954,"cover":47,"sort":949,"created_at":955,"updated_at":955,"id":956},"6a3141fb73c9eb8a9b458cae","I Want You To Know.mp3","晴诚","\u002Fmusic\u002F%E6%99%B4%E8%AF%9A%20-%20I%20Want%20You%20To%20Know.mp3","2026-06-16T12:30:51.738Z",135,{"_id":958,"name":959,"artist":960,"url":961,"cover":47,"sort":956,"created_at":962,"updated_at":962,"id":963},"6a3141fb73c9eb8a9b458cb1","Jar Of Love.mp3","曲婉婷","\u002Fmusic\u002F%E6%9B%B2%E5%A9%89%E5%A9%B7%20-%20Jar%20Of%20Love.mp3","2026-06-16T12:30:51.743Z",136,{"_id":965,"name":966,"artist":967,"url":968,"cover":47,"sort":963,"created_at":969,"updated_at":969,"id":970},"6a3141fb73c9eb8a9b458cb4","你在看孤独的风景.mp3","本兮","\u002Fmusic\u002F%E6%9C%AC%E5%85%AE%20-%20%E4%BD%A0%E5%9C%A8%E7%9C%8B%E5%AD%A4%E7%8B%AC%E7%9A%84%E9%A3%8E%E6%99%AF.mp3","2026-06-16T12:30:51.749Z",137,{"_id":972,"name":973,"artist":967,"url":974,"cover":47,"sort":970,"created_at":975,"updated_at":975,"id":976},"6a3141fb73c9eb8a9b458cb7","小明是个画家.mp3","\u002Fmusic\u002F%E6%9C%AC%E5%85%AE%20-%20%E5%B0%8F%E6%98%8E%E6%98%AF%E4%B8%AA%E7%94%BB%E5%AE%B6.mp3","2026-06-16T12:30:51.755Z",138,{"_id":978,"name":979,"artist":967,"url":980,"cover":47,"sort":976,"created_at":981,"updated_at":981,"id":982},"6a3141fb73c9eb8a9b458cba","我梦见我梦见我.mp3","\u002Fmusic\u002F%E6%9C%AC%E5%85%AE%20-%20%E6%88%91%E6%A2%A6%E8%A7%81%E6%88%91%E6%A2%A6%E8%A7%81%E6%88%91.mp3","2026-06-16T12:30:51.762Z",139,{"_id":984,"name":985,"artist":986,"url":987,"cover":47,"sort":982,"created_at":988,"updated_at":988,"id":989},"6a3141fb73c9eb8a9b458cbd","I am not angry anymore.mp3","李郝","\u002Fmusic\u002F%E6%9D%8E%E9%83%9D%20-%20I%20am%20not%20angry%20anymore.mp3","2026-06-16T12:30:51.768Z",140,{"_id":991,"name":992,"artist":993,"url":994,"cover":47,"sort":989,"created_at":995,"updated_at":995,"id":996},"6a3141fb73c9eb8a9b458cc0","Summertime Sadness.mp3","杳葵","\u002Fmusic\u002F%E6%9D%B3%E8%91%B5%20-%20Summertime%20Sadness.mp3","2026-06-16T12:30:51.775Z",141,{"_id":998,"name":999,"artist":1000,"url":1001,"cover":47,"sort":996,"created_at":1002,"updated_at":1002,"id":1003},"6a3141fb73c9eb8a9b458cc3","Tokyo.mp3","梅尼耶","\u002Fmusic\u002F%E6%A2%85%E5%B0%BC%E8%80%B6%20-%20Tokyo.mp3","2026-06-16T12:30:51.780Z",142,{"_id":1005,"name":1006,"artist":1007,"url":1008,"cover":47,"sort":1003,"created_at":1009,"updated_at":1009,"id":1010},"6a3141fb73c9eb8a9b458cc6","少年.mp3","梦然","\u002Fmusic\u002F%E6%A2%A6%E7%84%B6%20-%20%E5%B0%91%E5%B9%B4.mp3","2026-06-16T12:30:51.786Z",143,{"_id":1012,"name":1013,"artist":1014,"url":1015,"cover":47,"sort":1010,"created_at":1016,"updated_at":1016,"id":1017},"6a3141fb73c9eb8a9b458cc9","爱情的傀儡.mp3","橙子","\u002Fmusic\u002F%E6%A9%99%E5%AD%90%20-%20%E7%88%B1%E6%83%85%E7%9A%84%E5%82%80%E5%84%A1.mp3","2026-06-16T12:30:51.792Z",144,{"_id":1019,"name":1020,"artist":1021,"url":1022,"cover":47,"sort":1017,"created_at":1023,"updated_at":1023,"id":1024},"6a3141fb73c9eb8a9b458ccc","春娇与志明.mp3","欧阳耀莹","\u002Fmusic\u002F%E6%AC%A7%E9%98%B3%E8%80%80%E8%8E%B9%20-%20%E6%98%A5%E5%A8%87%E4%B8%8E%E5%BF%97%E6%98%8E.mp3","2026-06-16T12:30:51.799Z",145,{"_id":1026,"name":1027,"artist":1028,"url":1029,"cover":47,"sort":1024,"created_at":1030,"updated_at":1030,"id":1031},"6a3141fb73c9eb8a9b458ccf","我应该去爱你.mp3","汪东城","\u002Fmusic\u002F%E6%B1%AA%E4%B8%9C%E5%9F%8E%20-%20%E6%88%91%E5%BA%94%E8%AF%A5%E5%8E%BB%E7%88%B1%E4%BD%A0.mp3","2026-06-16T12:30:51.804Z",146,{"_id":1033,"name":1034,"artist":1035,"url":1036,"cover":47,"sort":1031,"created_at":1037,"updated_at":1037,"id":1038},"6a3141fb73c9eb8a9b458cd2","Redbone.mp3","沐泽","\u002Fmusic\u002F%E6%B2%90%E6%B3%BD%20-%20Redbone.mp3","2026-06-16T12:30:51.810Z",147,{"_id":1040,"name":1041,"artist":1035,"url":1042,"cover":47,"sort":1038,"created_at":1043,"updated_at":1043,"id":1044},"6a3141fb73c9eb8a9b458cd5","Take Me To Infinity.mp3","\u002Fmusic\u002F%E6%B2%90%E6%B3%BD%20-%20Take%20Me%20To%20Infinity.mp3","2026-06-16T12:30:51.816Z",148,{"_id":1046,"name":1047,"artist":1048,"url":1049,"cover":47,"sort":1044,"created_at":1050,"updated_at":1050,"id":1051},"6a3141fb73c9eb8a9b458cd8","不过人间.mp3","海来阿木","\u002Fmusic\u002F%E6%B5%B7%E6%9D%A5%E9%98%BF%E6%9C%A8%20-%20%E4%B8%8D%E8%BF%87%E4%BA%BA%E9%97%B4.mp3","2026-06-16T12:30:51.821Z",149,{"_id":1053,"name":161,"artist":1054,"url":1055,"cover":47,"sort":1051,"created_at":1056,"updated_at":1056,"id":1057},"6a3141fb73c9eb8a9b458cdb","潮妹","\u002Fmusic\u002F%E6%BD%AE%E5%A6%B9%20-%20Outside.mp3","2026-06-16T12:30:51.827Z",150,{"_id":1059,"name":1060,"artist":1061,"url":1062,"cover":47,"sort":1057,"created_at":1063,"updated_at":1063,"id":1064},"6a3141fb73c9eb8a9b458cde","目不转睛.mp3","王以太","\u002Fmusic\u002F%E7%8E%8B%E4%BB%A5%E5%A4%AA%20-%20%E7%9B%AE%E4%B8%8D%E8%BD%AC%E7%9D%9B.mp3","2026-06-16T12:30:51.833Z",151,{"_id":1066,"name":1067,"artist":1068,"url":1069,"cover":47,"sort":1064,"created_at":1070,"updated_at":1070,"id":1071},"6a3141fb73c9eb8a9b458ce1","Ke Cap Gap Ba Gia.mp3","王梦瑶","\u002Fmusic\u002F%E7%8E%8B%E6%A2%A6%E7%91%B6%20-%20Ke%20Cap%20Gap%20Ba%20Gia.mp3","2026-06-16T12:30:51.839Z",152,{"_id":1073,"name":1074,"artist":1075,"url":1076,"cover":47,"sort":1071,"created_at":1077,"updated_at":1077,"id":1078},"6a3141fb73c9eb8a9b458ce4","ДбкПя (原版).mp3","神皇仙人","\u002Fmusic\u002F%E7%A5%9E%E7%9A%87%E4%BB%99%E4%BA%BA%20-%20%D0%94%D0%B1%D0%BA%D0%9F%D1%8F%20%28%E5%8E%9F%E7%89%88%29.mp3","2026-06-16T12:30:51.845Z",153,{"_id":1080,"name":1081,"artist":1082,"url":1083,"cover":47,"sort":1078,"created_at":1084,"updated_at":1084,"id":1085},"6a3141fb73c9eb8a9b458ce7","Salt.mp3","精彩轩迪","\u002Fmusic\u002F%E7%B2%BE%E5%BD%A9%E8%BD%A9%E8%BF%AA%20-%20Salt.mp3","2026-06-16T12:30:51.851Z",154,{"_id":1087,"name":1088,"artist":1089,"url":1090,"cover":47,"sort":1085,"created_at":1091,"updated_at":1091,"id":1092},"6a3141fb73c9eb8a9b458cea","Xirali-3时尚歌曲串烧.mp3","舞曲帝","\u002Fmusic\u002F%E8%88%9E%E6%9B%B2%E5%B8%9D%20-%20Xirali-3%E6%97%B6%E5%B0%9A%E6%AD%8C%E6%9B%B2%E4%B8%B2%E7%83%A7.mp3","2026-06-16T12:30:51.856Z",155,{"_id":1094,"name":1095,"artist":1096,"url":1097,"cover":47,"sort":1092,"created_at":1098,"updated_at":1098,"id":1099},"6a3141fb73c9eb8a9b458ced","Leave Me Alone  Alan Walker.mp3","苏七岁","\u002Fmusic\u002F%E8%8B%8F%E4%B8%83%E5%B2%81%20-%20Leave%20Me%20Alone%20%20Alan%20Walker.mp3","2026-06-16T12:30:51.872Z",156,{"_id":1101,"name":586,"artist":1102,"url":1103,"cover":47,"sort":1099,"created_at":1104,"updated_at":1104,"id":1105},"6a3141fb73c9eb8a9b458cf0","苏静","\u002Fmusic\u002F%E8%8B%8F%E9%9D%99%20-%20Closer.mp3","2026-06-16T12:30:51.884Z",157,{"_id":1107,"name":140,"artist":1108,"url":1109,"cover":47,"sort":1105,"created_at":1110,"updated_at":1110,"id":1111},"6a3141fb73c9eb8a9b458cf3","苏鹤","\u002Fmusic\u002F%E8%8B%8F%E9%B9%A4%20-%20Apologize.mp3","2026-06-16T12:30:51.894Z",158,{"_id":1113,"name":1114,"artist":1115,"url":1116,"cover":47,"sort":1111,"created_at":1117,"updated_at":1117,"id":1118},"6a3141fb73c9eb8a9b458cf6","Dancer In The Dark.mp3","蒂娜","\u002Fmusic\u002F%E8%92%82%E5%A8%9C%20-%20Dancer%20In%20The%20Dark.mp3","2026-06-16T12:30:51.902Z",159,{"_id":1120,"name":1121,"artist":1122,"url":1123,"cover":47,"sort":1118,"created_at":1124,"updated_at":1124,"id":1125},"6a3141fb73c9eb8a9b458cf9","Senbonzakura.mp3","虞姬","\u002Fmusic\u002F%E8%99%9E%E5%A7%AC%20-%20Senbonzakura.mp3","2026-06-16T12:30:51.912Z",160,{"_id":1127,"name":1128,"artist":1122,"url":1129,"cover":47,"sort":1125,"created_at":1130,"updated_at":1130,"id":1131},"6a3141fb73c9eb8a9b458cfc","bboy danny.mp3","\u002Fmusic\u002F%E8%99%9E%E5%A7%AC%20-%20bboy%20danny.mp3","2026-06-16T12:30:51.921Z",161,{"_id":1133,"name":1134,"artist":1135,"url":1136,"cover":47,"sort":1131,"created_at":1137,"updated_at":1137,"id":1138},"6a3141fb73c9eb8a9b458cff","我爱你 Luv Is Luv.mp3","贺仙人","\u002Fmusic\u002F%E8%B4%BA%E4%BB%99%E4%BA%BA%20-%20%E6%88%91%E7%88%B1%E4%BD%A0%20Luv%20Is%20Luv.mp3","2026-06-16T12:30:51.930Z",162,{"_id":1140,"name":1141,"artist":1142,"url":1143,"cover":47,"sort":1138,"created_at":1144,"updated_at":1144,"id":1145},"6a3141fb73c9eb8a9b458d02","Despair (1).mp3","赵亦笙","\u002Fmusic\u002F%E8%B5%B5%E4%BA%A6%E7%AC%99%20-%20Despair%20%281%29.mp3","2026-06-16T12:30:51.941Z",163,{"_id":1147,"name":1148,"artist":1149,"url":1150,"cover":47,"sort":1145,"created_at":1151,"updated_at":1151,"id":1152},"6a3141fb73c9eb8a9b458d05","Lendo Calendo.mp3","迪嘉","\u002Fmusic\u002F%E8%BF%AA%E5%98%89%20-%20Lendo%20Calendo.mp3","2026-06-16T12:30:51.950Z",164,{"_id":1154,"name":1155,"artist":1156,"url":1157,"cover":47,"sort":1152,"created_at":1158,"updated_at":1158,"id":1159},"6a3141fb73c9eb8a9b458d08","想见你想见你想见你.mp3","阿冗","\u002Fmusic\u002F%E9%98%BF%E5%86%97%20-%20%E6%83%B3%E8%A7%81%E4%BD%A0%E6%83%B3%E8%A7%81%E4%BD%A0%E6%83%B3%E8%A7%81%E4%BD%A0.mp3","2026-06-16T12:30:51.956Z",165,{"_id":1161,"name":1162,"artist":1163,"url":1164,"cover":47,"sort":1159,"created_at":1165,"updated_at":1165,"id":1166},"6a3141fb73c9eb8a9b458d0b","热爱105°C的你.mp3","阿肆","\u002Fmusic\u002F%E9%98%BF%E8%82%86%20-%20%E7%83%AD%E7%88%B1105%C2%B0C%E7%9A%84%E4%BD%A0.mp3","2026-06-16T12:30:51.962Z",166,{"_id":1168,"name":1169,"artist":1170,"url":1171,"cover":47,"sort":1166,"created_at":1172,"updated_at":1172,"id":1173},"6a3141fb73c9eb8a9b458d0e","起风了 (1).mp3","青伊","\u002Fmusic\u002F%E9%9D%92%E4%BC%8A%20-%20%E8%B5%B7%E9%A3%8E%E4%BA%86%20%281%29.mp3","2026-06-16T12:30:51.967Z",167,{"_id":1175,"name":195,"artist":1176,"url":1177,"cover":47,"sort":1173,"created_at":1178,"updated_at":1178,"id":1179},"6a3141fb73c9eb8a9b458d11","鞠文娴","\u002Fmusic\u002F%E9%9E%A0%E6%96%87%E5%A8%B4%20-%20BINGBIAN%E7%97%85%E5%8F%98.mp3","2026-06-16T12:30:51.973Z",168,{"_id":1181,"name":1182,"artist":1183,"url":1184,"cover":47,"sort":1179,"created_at":1185,"updated_at":1185,"id":1186},"6a3141fb73c9eb8a9b458d14","红昭愿.mp3","音阙诗听","\u002Fmusic\u002F%E9%9F%B3%E9%98%99%E8%AF%97%E5%90%AC%20-%20%E7%BA%A2%E6%98%AD%E6%84%BF.mp3","2026-06-16T12:30:51.978Z",169,{"_id":1188,"name":537,"artist":1189,"url":1190,"cover":47,"sort":1186,"created_at":1191,"updated_at":1191,"id":1192},"6a3141fb73c9eb8a9b458d17","首席执行官小七","\u002Fmusic\u002F%E9%A6%96%E5%B8%AD%E6%89%A7%E8%A1%8C%E5%AE%98%E5%B0%8F%E4%B8%83%20-%20Once%20upon%20a%20Time.mp3","2026-06-16T12:30:51.985Z",170,{"_id":1194,"title":1195,"content":1196,"description":1197,"cover":1198,"created_date":1199,"category_id":28,"tag_ids":1200,"author_ids":1201,"public":50,"status":50,"star":50,"like":48,"views":254,"created_at":1202,"updated_at":1203,"id":331,"category":1204,"tags":1205,"authors":1222,"related":1223},"6a2d2e8a58b719b2465af18d","滚动更新与零停机部署：deploy.sh 的设计","很多人的「部署脚本」就是一句 `docker compose up -d`。它能跑，但有两个隐患：更新瞬间可能有停机、新版本起不来时没人兜底。我的 `deploy.sh` 围绕「**零停机 + 失败自愈**」多做了几步。\n\n## 部署脚本要做的事\n\n```mermaid\nflowchart TD\n    A[\"接收 service + image_tag\"] --> B[\"记录当前 tag (供回滚)\"]\n    B --> C[\"拉取新镜像 tag\"]\n    C --> D[\"compose up -d 滚动替换该服务\"]\n    D --> E{\"健康检查通过?\"}\n    E --> |\"是\"| F[\"清理旧镜像 → 完成\"]\n    E --> |\"否\"| G[\"回滚到旧 tag → 报警\"]\n```\n\n核心逻辑大致是：\n\n```bash\n#!\u002Fusr\u002Fbin\u002Fenv bash\nset -euo pipefail\n\nSERVICE=\"$1\"          # 要部署的服务，如 api\nNEW_TAG=\"$2\"          # 目标镜像 tag（commit sha）\n\n# 1. 记下当前 tag，失败时好回滚\nOLD_TAG=\"$(current_running_tag \"$SERVICE\")\"\n\n# 2. 拉新镜像（失败就停，不动现有服务）\nexport IMAGE_TAG=\"$NEW_TAG\"\ndocker compose -f docker-compose.yml -f docker-compose.prod.yml pull \"$SERVICE\"\n\n# 3. 滚动替换：只重建目标服务，依赖不动\ndocker compose -f docker-compose.yml -f docker-compose.prod.yml up -d \\\n  --no-deps \"$SERVICE\"\n\n# 4. 健康检查\nif ! wait_healthy \"$SERVICE\" 60; then\n  echo \"健康检查失败，回滚到 $OLD_TAG\"\n  IMAGE_TAG=\"$OLD_TAG\" docker compose ... up -d --no-deps \"$SERVICE\"\n  exit 1\nfi\n\n# 5. 成功，清理悬空镜像\ndocker image prune -f\n```\n\n## 关键动作拆解\n\n**① 先拉镜像，再替换。** `pull` 单独一步且失败即停。这样网络问题\u002F镜像不存在时，**现有服务原封不动**，不会出现「拉到一半把旧的停了、新的又起不来」的中间态。\n\n**② `--no-deps` 只动目标服务。** 部署 API 时不该顺手重启 MongoDB、Redis。`--no-deps` 限定只重建指定服务，避免无谓地动数据库这类有状态依赖。配合容器自身的滚动替换，新容器健康后旧容器才退出，请求几乎无感切换。\n\n**③ 健康检查是零停机的灵魂。** 「容器起来了」不等于「服务能用了」——进程在跑但还没连上数据库、还没加载完，照样 502。所以要轮询服务的健康端点，**真正 ready 了才算部署成功**：\n\n```bash\nwait_healthy() {\n  local svc=\"$1\" timeout=\"$2\" elapsed=0\n  until curl -fsS \"http:\u002F\u002Flocalhost:3000\u002Fhealth\" >\u002Fdev\u002Fnull 2>&1; do\n    sleep 3; elapsed=$((elapsed + 3))\n    [ \"$elapsed\" -ge \"$timeout\" ] && return 1\n  done\n}\n```\n\n**④ 失败自动回滚。** 健康检查没过，立刻用记录的 `OLD_TAG` 把服务拉回旧版本。因为旧镜像还在本地，回滚是秒级的。**部署可以失败，但不能让站点挂着没人管。**\n\n**⑤ `set -euo pipefail` 打底。** 任何一步出错立即终止、未定义变量报错、管道中任意环节失败都算失败。部署脚本最怕「错了还继续往下跑」，这一行是底线。\n\n## 为什么值得多写这几十行\n\n- **更新无感**：用户在你部署时刷新页面，不会撞上 502；\n- **坏版本进不了生产**：起不来的版本被健康检查挡下并自动回滚，不会「发布完才发现挂了」；\n- **可重复、可信任**：每次部署走同样的流程，CI 调它、手动也能调它，行为一致。\n\n## 小结\n\n零停机部署的脚本要点：先 `pull` 后替换（保护现有服务）、`--no-deps` 只动目标、健康检查确认真正 ready、失败自动回滚到旧 tag、`set -euo pipefail` 兜底。多写这几十行，换来的是「敢在白天部署」的底气。","一个好的部署脚本不只是 docker compose up。它要按 tag 拉镜像、滚动替换、健康检查、失败自动回滚。拆解我那个几十行的 deploy.sh，看零停机部署的几个关键动作。","\u002Fblog\u002Fcover-43.png","2025-02-20T02:00:00.000Z",[331,380,548,449],[],"2026-06-13T10:18:50.326Z","2026-06-17T14:36:03.237Z",{"_id":24,"name":25,"description":26,"cover":8,"created_at":27,"updated_at":27,"id":28},[1206,1210,1214,1218],{"_id":1207,"name":1208,"created_at":1209,"updated_at":1209,"id":331},"6a2d2e5e58b719b2465af096","Docker","2026-06-13T10:18:06.690Z",{"_id":1211,"name":1212,"created_at":1213,"updated_at":1213,"id":380},"6a2d2e6158b719b2465af0ab","CI-CD","2026-06-13T10:18:09.908Z",{"_id":1215,"name":1216,"created_at":1217,"updated_at":1217,"id":548},"6a2d2e8758b719b2465af180","自动化","2026-06-13T10:18:47.983Z",{"_id":1219,"name":1220,"created_at":1221,"updated_at":1221,"id":449},"6a2d2e6558b719b2465af0c9","可观测性","2026-06-13T10:18:13.781Z",[],[1224,1228,1232,1236,1240,1244],{"title":1225,"cover":1226,"created_date":1227,"id":338},"开源前的密钥治理：gitleaks + 历史清理 + 凭证轮换","\u002Fblog\u002Fcover-44.png","2025-03-18T02:00:00.000Z",{"title":1229,"cover":1230,"created_date":1231,"id":324},"repository_dispatch 驱动的跨仓库 CI\u002FCD 与一键回滚","\u002Fblog\u002Fcover-42.png","2025-01-15T02:00:00.000Z",{"title":1233,"cover":1234,"created_date":1235,"id":310},"nginx 网关按域名分发 + HTTP\u002F3：单机多服务入口","\u002Fblog\u002Fcover-40.png","2024-11-27T02:00:00.000Z",{"title":1237,"cover":1238,"created_date":1239,"id":303},"一套 Docker Compose 同时服务开发与生产：分层覆盖","\u002Fblog\u002Fcover-39.png","2024-10-15T02:00:00.000Z",{"title":1241,"cover":1242,"created_date":1243,"id":317},"acme.sh + 阿里云 DNS-01：泛域名证书自动续期与 CDN 推送","\u002Fblog\u002Fcover-41.png","2023-12-03T02:00:00.000Z",{"id":158,"title":1245,"cover":1246,"created_date":1247},"Jenkins 不完全指南：从安装到流水线即代码","\u002Fblog\u002Fcover-18.png","2022-08-25T02:00:00.000Z",[1249,1256,1262,1267,1272,1280,1287],{"_id":1250,"id":1031,"article_id":331,"parent_id":48,"nickname":1251,"content":1252,"like":88,"email":1253,"website":1254,"created_at":1255,"updated_at":1255},"6a2d5bafb8dda55eb59df932","Vincent","小项目生产用 compose 还是直接上 k8s？感觉 k8s 太重了","u63522@foxmail.com",false,"2025-03-05T09:38:32.525Z",{"_id":1257,"id":1258,"article_id":331,"parent_id":1031,"nickname":1259,"content":1260,"like":50,"email":8,"website":1254,"created_at":1261,"updated_at":1261},"6a2d5bafb8dda55eb59df933",205,"林深时见鹿","学到了，谢谢补充","2025-03-05T22:38:32.525Z",{"_id":1263,"id":1044,"article_id":331,"parent_id":48,"nickname":1264,"content":1265,"like":48,"email":8,"website":1254,"created_at":1266,"updated_at":1266},"6a2d5bafb8dda55eb59df935","Echo","零停机这块细节真不少，受教了","2025-03-29T14:48:40.947Z",{"_id":1268,"id":1057,"article_id":331,"parent_id":48,"nickname":1269,"content":1270,"like":57,"email":8,"website":1254,"created_at":1271,"updated_at":1271},"6a2d5bafb8dda55eb59df938","kkk","请问多个 server_name 复用同一张证书会有坑吗？","2025-04-14T20:32:36.520Z",{"_id":1273,"id":1274,"article_id":331,"parent_id":1057,"nickname":1275,"content":1276,"like":50,"email":1277,"website":1278,"created_at":1279,"updated_at":1279},"6a2d5bafb8dda55eb59df939",206,"Gavin","收到，这个点很值得补充，记下了 🙏","zzlwte@gmail.com","https:\u002F\u002Fjiawen.live","2025-04-16T00:32:36.520Z",{"_id":1281,"id":1038,"article_id":331,"parent_id":48,"nickname":1282,"content":1283,"like":57,"email":1284,"website":1285,"created_at":1286,"updated_at":1286},"6a2d5bafb8dda55eb59df93b","梦回","PM2 的开机自启我之前漏了 save，难怪重启就没了","u6361@163.com",true,"2025-04-29T08:40:09.422Z",{"_id":1288,"id":1051,"article_id":331,"parent_id":48,"nickname":1289,"content":1290,"like":28,"email":1291,"website":1254,"created_at":1292,"updated_at":1292},"6a2d5bafb8dda55eb59df950","半夏","生产环境我也是这么配的，稳","u44258@gmail.com","2025-10-20T21:29:11.187Z"]