การสำรองข้อมูลและการอัปเกรด
สิ่งที่ต้องสำรอง, วิธีกู้คืนบนโฮสต์ใหม่, วิธีอัปเกรด และวิธีย้ายเซิร์ฟเวอร์ Mattermost หรือชุมชนเดียวไปยัง Antimatter
สิ่งที่ต้องสำรอง
| รายการ | ด้วยไฟล์ compose ของไซต์ | ด้วยอาร์ไคฟ์เวอร์ชัน | โดยใช้แพ็กเกจ .deb หรือ .rpm |
|---|---|---|---|
| ฐานข้อมูล: ข้อความ, ผู้ใช้, ชุมชน, ช่อง และ (เมื่อใช้ไฟล์ compose ของไซต์) การตั้งค่า | โวลุ่ม antimatter_postgres ผ่าน pg_dump | ฐานข้อมูล PostgreSQL ของคุณ | ฐานข้อมูล PostgreSQL ของคุณ |
| ไฟล์ที่อัปโหลด, รูปภาพ และแอปที่ติดตั้ง | โวลุ่ม antimatter_files (ที่เก็บข้อมูล S3) | FileSettings.Directory, ค่าเริ่มต้นคือ ./data/ | /var/lib/antimatter |
| ไฟล์การตั้งค่า | (ในฐานข้อมูล) | config/config.json | /etc/antimatter/config/config.json |
| GIF และสติ๊กเกอร์ | โวลุ่ม antimatter_gifs | ไดเรกทอรีข้อมูลของบริการ GIF | /var/lib/gifs-server |
| ข้อมูลลับ (Secrets) | .env (และ compose.override.yaml) | ไฟล์ environment ของคุณ | /etc/antimatter/antimatter.env, /etc/gifs-server |
| คีย์การเข้ารหัส AI ซึ่งใช้เข้ารหัสคีย์ของการเชื่อมต่อโมเดล | AM_AI_ENCRYPTION_KEY ใน .env (แนะนำ) หรือไฟล์ ai-encryption.key ในโวลุ่ม antimatter_data | AM_AI_ENCRYPTION_KEY หรือ data/ai-encryption.key | AM_AI_ENCRYPTION_KEY ใน antimatter.env หรือ /var/lib/antimatter/data/ai-encryption.key |
หากไม่มีคีย์การเข้ารหัส AI เซิร์ฟเวอร์ที่กู้คืนมาจะไม่สามารถอ่านคีย์ API ของการเชื่อมต่อโมเดลได้ และต้องพิมพ์คีย์แต่ละตัวใหม่อีกครั้ง จดสำเนาคีย์แยกไว้จากแบ็กอัปฐานข้อมูล เพื่อไม่ให้แบ็กอัปชุดเดียวมีทั้งคีย์และข้อมูล หากถูกขโมย ดู คีย์การเข้ารหัส
ฐานข้อมูลและไฟล์ต้องไปด้วยกัน: สำรองพร้อมกัน และเก็บสำเนาไว้ภายนอกเซิร์ฟเวอร์ ชื่อโวลุ่มขึ้นต้นด้วยชื่อโปรเจกต์ compose, antimatter (ดูรายการด้วย docker volume ls)
สำรองข้อมูล
จากไดเรกทอรีของ compose.yaml การหยุด Antimatter ก่อนจะให้สำเนาที่สอดคล้องกันสมบูรณ์; การสำรองขณะทำงานมักไม่เป็นไร แต่ไฟล์ที่อัปโหลดระหว่างสำรองอาจขาดหาย
stamp=$(date +%Y%m%d-%H%M%S)
mkdir -p backups
docker compose stop antimatter
# Database
docker compose exec -T postgres pg_dump -U antimatter -d antimatter -Fc \
> "backups/antimatter-db-$stamp.dump"
# File storage, GIF service and the data directory (the AI key file)
for v in files gifs data; do
docker run --rm -v "antimatter_$v:/data:ro" -v "$PWD/backups:/backup" \
alpine tar -czf "/backup/antimatter-$v-$stamp.tar.gz" -C /data .
done
docker compose start antimatter
# Secrets
cp .env "backups/env-$stamp"
หากคุณยังไม่ได้ตั้งค่า AM_AI_ENCRYPTION_KEY ไฟล์คีย์ของเซิร์ฟเวอร์จะอยู่ในโวลุ่ม data ซึ่งลูปด้านบนจะสำรองไว้พร้อมกับไฟล์อื่น ๆ ดีกว่านั้นคือ นำเนื้อหาของมันไปใส่ใน .env ตามที่ คีย์การเข้ารหัส อธิบายไว้ และจดสำเนาแยกไว้จากแบ็กอัปฐานข้อมูล
รันผ่าน cron เพื่อสำรองรายวัน และคัดลอกไดเรกทอรี backups/ ไปยังเครื่องอื่น เก็บสำเนาของ .env ให้ปลอดภัยเท่าเซิร์ฟเวอร์: เพราะมีรหัสผ่านอยู่ในนั้น
หากต้องการคัดลอกไฟล์ที่อัปโหลดเป็นรายอ็อบเจกต์ (เช่น ไปยังที่เก็บ S3 อื่น) ใช้เครื่องมือ command-line ของ AWS ของบริการ bucket:
docker compose run --rm -v "$PWD/backups/files:/backup" bucket \
"aws --endpoint-url http://files:9000 s3 sync s3://antimatter /backup"
เมื่อใช้อาร์ไคฟ์เวอร์ชันที่ปล่อยออกมา ให้สำรองฐานข้อมูลด้วย pg_dump -Fc และไดเรกทอรี data/ และ config/ ด้วยเครื่องมือที่คุณใช้เป็นประจำ (data/ เก็บไฟล์คีย์ AI) เมื่อใช้แพ็กเกจ ให้สำรองฐานข้อมูลด้วยวิธีเดียวกัน และ /etc/antimatter, /var/lib/antimatter, /etc/gifs-server และ /var/lib/gifs-server
กู้คืนบนโฮสต์ใหม่
วาง compose.yaml, .env ที่บันทึกไว้ และไฟล์สำรองในไดเรกทอรีใหม่ จากนั้น:
stamp=20261016-030000 # the backup to restore
docker compose create # creates the volumes, starts nothing
docker compose up -d postgres
docker compose exec -T postgres pg_restore -U antimatter -d antimatter --no-owner \
< "backups/antimatter-db-$stamp.dump"
for v in files gifs data; do
docker run --rm -v "antimatter_$v:/data" -v "$PWD/backups:/backup" \
alpine tar -xzf "/backup/antimatter-$v-$stamp.tar.gz" -C /data
done
docker compose up -d
ใช้ .env เดิม: การเก็บข้อมูลและฐานข้อมูลต้องยังคงรหัสผ่านเดิมไว้ และการเชื่อมต่อโมเดลต้องการคีย์การเข้ารหัส AI เดิม หากโฮสต์ใหม่มีที่อยู่ต่างไป ให้ปรับปรุง SITE_URL (และ DOMAIN)
ทดสอบการสำรองข้อมูลของคุณโดยกู้คืนบนเครื่องอื่นเป็นครั้งคราว
อัปเกรด
data: ไฟล์คีย์ AI อยู่ในคอนเทนเนอร์ ก่อนที่คุณจะใช้ compose.yaml ใหม่ และหาก .env ไม่มี AM_AI_ENCRYPTION_KEY ให้บันทึกคีย์ที่เซิร์ฟเวอร์สร้างไว้: echo "AM_AI_ENCRYPTION_KEY=$(docker compose exec -T antimatter cat /antimatter/data/ai-encryption.key)" >> .env หากคำสั่งไม่พบไฟล์ แสดงว่ายังไม่มีคีย์การเชื่อมต่อโมเดลที่บันทึกไว้- สำรองข้อมูล
- เปลี่ยนแท็กของ image ใน
.env(ANTIMATTER_IMAGE) หากคุณตรึงเวอร์ชันไว้ ตามคำแนะนำ - ดึงและรีสตาร์ท:
docker compose pull docker compose up -d docker compose logs -f antimatter
เมื่อเริ่มทำงาน เซิร์ฟเวอร์จะอัปเกรดโครงสร้างฐานข้อมูล (ติดตามความคืบหน้าในบันทึก; เซิร์ฟเวอร์ขนาดใหญ่อาจใช้เวลาหลายนาที) และติดตั้งเวอร์ชันใหม่กว่าของแอปที่รวมอยู่ในภาพ (image) สำหรับอาร์ไคฟ์ของเวอร์ชัน: หยุดเซิร์ฟเวอร์ แทนที่ทุกอย่างยกเว้น config/, data/, logs/, plugins/ และ client/plugins/ ด้วยเนื้อหาจากอาร์ไคฟ์ใหม่ แล้วเริ่มทำงานอีกครั้ง สำหรับแพ็กเกจ .deb หรือ .rpm ติดตั้งแพ็กเกจใหม่ตามที่อธิบายไว้ใน การอัปเกรดแพ็กเกจ
antimatter-next กลับไป antimatter เช่นกันเวอร์ชัน
เซิร์ฟเวอร์ของ Antimatter รายงานเวอร์ชันของสาย Mattermost ที่ใช้เป็นฐาน (ปัจจุบันคือ 12.0.0) การเผยแพร่บน GitHub ซึ่งประกอบด้วยอาร์ไคฟ์และแพ็กเกจ มีหมายเลขเวอร์ชันของตัวเอง ในซีรีส์ 0.9.0 ระหว่างช่วงเบต้า: antimatter version แสดงเป็น เลขที่บิลด์ ภาพ (images) จะถูกสร้างใหม่จากสาขา main: antimatter-next ทุกคืน (แท็ก nightly-<YYYYMMDD>) และทั้งสองภาพเมื่อมีการเปลี่ยนแปลง (แท็ก sha-<commit>) ระบุ (pin) แท็กเหล่านี้ไว้ อัปเกรดอย่างมีเจตนา และจดบันทึกแท็กก่อนหน้าไว้เพื่อให้ทราบว่าการสำรองข้อมูล (backup) ไหนตรงกับเวอร์ชันนั้น
เวอร์ชันหลักของ PostgreSQL
ไฟล์ compose ใช้ postgres:17-alpine Antimatter ต้องการ PostgreSQL 15 หรือใหม่กว่า เวอร์ชันหลักใหม่ของ PostgreSQL ไม่สามารถอ่านไดเรกทอรีข้อมูลของเวอร์ชันก่อนหน้าได้: หากต้องการย้ายไปเวอร์ชันใหม่ ให้ทำ dump ฐานข้อมูล เริ่มเวอร์ชันใหม่บนโวลุ่มใหม่ และกู้คืน dump เข้าไป
การอัปเกรดเป็น 0.9.0
การเริ่มทำงานครั้งแรกของเวอร์ชัน 0.9.0 (หรือของภาพที่สร้างจากวันที่ 17 ตุลาคม 2026 เป็นต้นไป) จะทำการเปลี่ยนแปลงครั้งเดียว (one-time) บางประการกับข้อมูล แต่ละรายการจะทำงานเพียงครั้งเดียว และถูกบันทึกไว้ในฐานข้อมูล สิ่งเหล่านี้จะนำค่าที่ตั้งไว้เป็นค่าเริ่มต้นเดิม (old default) ไปเป็นค่าเริ่มต้นใหม่ และจะไม่แตะต้องค่าที่ผู้ดูแลระบบเลือกไว้ ติดตามความคืบหน้าในบันทึก (log)
AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND=workplace การอัปเกรดจะกำหนดประเภทนี้ให้กับทุกชุมชนตามค่าที่ตั้งไว้ในขณะนั้น และการโทร (calls) จะถูกปิดไว้เป็นค่าเริ่มต้นในช่องของชุมชนที่มีประเภท ชุมชน ดู ที่ทำงานหรือชุมชน| รายการ | การเปลี่ยนแปลง |
|---|---|
| ประเภทของชุมชน | ทุกชุมชนจะมีประเภท ชุมชน หรือ ที่ทำงาน: คือค่าของ ประเภทของชุมชนใหม่ (TeamSettings.DefaultCommunityKind) ในการเริ่มทำงานครั้งแรก ประเภทที่ตั้งไว้แล้วจะยังคงอยู่ ผู้ดูแลชุมชนสามารถเปลี่ยนประเภทของชุมชนของตนได้ภายหลัง ใน การตั้้งค่าทีม › ช่อง › ประเภทของชุมชน |
| ผู้ใดจะเก็บถาวรช่อง | สมาชิกในช่องจะไม่ได่เก็บถาวรช่องท่ีเขาร่วมอีกต่อไป: ผู้ดูแลระบบของชุมชนจะเป็นผู้เก็บถาวร ในพื้้นท่ีทำงาน ผู้ดูแลระบบของช่อง (ผู้สร้า และผู้ท่ีเขาได้ตั้งให้เป็นผู้ดูแลระบบ) ก็น่าจะเก็บถาวรช่องนั้่น การเปลี่นแปลงน้ีจะเปลี่นแปลงบทบาทของสคีมระบบ; สคีมการอนุญาติท่ีผู้ดูแลระบบของระบบได้สร้าไว้ให้ชุมชนบางชุมชนจะยังคงอย่อดังเดิมนั้่น |
| บทบาทผู้ดู้แลระบบ (Moderators) ของเทมเพลตเลย์เอาต์ | บทบาท Moderators ท่ีชุมชนได้จาก layout preset จะได้สิทธิ์ นำคนออก ท่ีจำเป้นสำหรบั การไล้คนออกและการนำคนออก ซ่ึงบทบาทท่ียังคงเป็นไปตามท่ี preset สร้า้งไว้เท่านั้้นท่ีจะเปล่ียนแปลง ส่วนบทบาทท่ีผ้ใข้ได้แก้งไข้แล้วจะไม่ได้รบัผล |
| บทบาทท่ีมีผู้ดูแลระบบ | บทบาทของชุมชนท่ีเปิดสวิตช์ ผู้ดูแลระบบ จะมปีระสิทธิตามท่ีสวิตช์บอกลงมา ครอบคลุมทังหมดท่ีผู้ดูแลระบบของชุมชนสามารถทำได้ ไม่เพียงเพีงการตังค่าของชุมชนเท่านั้้น |
| ขีดจำกัดจำนวนสมาชิกราย | สมาชิกรวมที่มากที่สุดต่อชุมชน (TeamSettings.MaxUsersPerTeam) เปลี่ยนจากค่าเริ่มต้นเดิม 50 เป็น 0 (ไม่จำกัด) ค่าอื่น ๆ ที่ตั้งไว้จะยังคงอยู่ รวมถึงค่าที่จำกัดด้วย AM_TEAMSETTINGS_MAXUSERSPERTEAM |
| การเชื่อมต่อโมเดล | ผู้ดูแลระบบ (System administrators) จะได่รับความรับผิดชอบในการจัดการการเชื่่อมต่อโมเดล ส่วนผู้ดูแลระบบของชุมชน (community admins) (และบทบาทท่ีมีผู้ดูแลระบบ) จะรับผิดชอบในการจัดการการเชื่่อมต่อโมเดลของชุมชนตนเอง บริการ AI ของแอป Agents จะกลายเป็็นการเชื่่อมต่อโมเดลท่ีใช้ร่วมกันทั้่งเซิร์ฟเวอร์ ดูข้้อมูลเพิ่่มเติมด้านล่าง |
| Town Square กลายเป็น General | ช่องเริ่มต้นของทุกชุมชนจะถูกเปลี่ยนชื่อจาก town-square (Town Square) เป็น general (General) โดยยังคง ID, สมาชิก, ข้อความ และการตั้งค่า รวมถึงชื่อที่แสดงซึ่งผู้ดูแลระบบเป็นผู้เลือกไว้ ลิงก์เดิมและการค้นหาโดย town-square จะยังคงนำไปยังช่องดังกล่าว หากชุมชนมีช่องที่ชื่อ general อยู่แล้ว (แม้จะถูกระบุว่าถูกเก็บถาวร) ช่อง town-square ของชุมชนนั้นจะยังคงเป็นช่องเริ่มต้น เช่นเดียวกับชุมชนที่ town-square ถูกระบุว่าถูกเก็บถาวร: บันทึกจะระบุชื่อของช่องเหล่านี้ไว้ และผู้ดูแลระบบสามารถเปลี่ยนชื่อของช่องเหล่านี้ได้ |
| รายการโปรด | หมวดหมู่ในแถบด้านข้างที่เคยมีชื่อว่า "Everyone's Favorites" ได้เปลี่ยนชื่อเป็น "Favourites" ตามที่อินเทอร์เฟซแสดงปัจจุบัน ส่วนหมวดหมู่ที่ผู้ใช้สร้างไว้ด้วยชื่อนั้นจะยังคงเดิม |
บริการของแอป Agents
การอัปเกรดจะคัดลอกบริการ AI แต่ละตัวของแอป Agents ไปเป็นการเชื่อมต่อโมเดลระดับเซิร์ฟเวอร์ ซึ่งชุมชนทุกชุมชนสามารถใช้งานร่วมกันได้ และทุกคนยกเว้นแขก (เปิด รวมแขกด้วย เพื่ออนุญาตให้พวกเขาใช้) คีย์จะถูกเข้ารหัสระหว่างทาง ดังนั้นเซิร์ฟเวอร์จึงต้องมีคีย์การเข้ารหัส AI: สำหรับคลัสเตอร์ที่ไฟล์อยู่ใน S3 ให้ตั้งค่า AM_AI_ENCRYPTION_KEY ก่อน ไม่อย่างนั้นการคัดลอกจะรอจนกว่าจะรีสตาร์ทครั้งถัดไป จากนั้นตรวจสอบ คอนโซลระบบ › AI › การเชื่อมต่อโมเดล:
- แต่ละการเชื่อมต่อจะเก็บ ID ของบริการไว้ ดังนั้นเอเจนต์ของแอปและการแปลอัตโนมัติที่ตั้งไว้กับบริการ Agents จึงยังค้นหาบริการนั้นได้
- บริการ OpenAI, OpenAI-compatible, Anthropic, Mistral, Cohere และ Gemini จะกลายเป็นการเชื่อมต่อไปยังปลายทาง OpenAI-compatible (หรือ Anthropic) ของแต่ละบริการ บริการ Azure จะกลายเป็นการเชื่อมต่อไปยังปลายทาง OpenAI-compatible ของทรัพยากร: ทดสอบดู
- บริการ AWS Bedrock, Google Vertex AI และ Cohere North รวมถึงประเภทที่ไม่รู้จัก จะถูกทำเครื่องหมายว่า ต้องดำเนินการ พร้อมเหตุผล ข้อมูลประจำตัวบนคลาวด์ของพวกนั้นไม่ถูกคัดลอก: ชี้ไปยังปลายทาง OpenAI-compatible ของผู้ให้บริการหรือเกตเวย์เช่น LiteLLM จากนั้นบันทึก
- บริการ embedding จะกลายเป็นโมเดล Embeddings ของการเชื่อมต่อที่มีที่อยู่และคีย์เดียวกัน หรือจะเป็นการเชื่อมต่อแยกต่างหาก บริการถอดเสียงจะได้โมเดล
whisper-1 - เมื่อการเขียนใหม่และสรุปยังไม่มี การเชื่อมต่อพวกนั้นจะได้บริการและโมเดลของเอเจนต์เริ่มต้นของแอป
การตั้งค่าและข้อมูลของแอป Agents เองยังคงเหมือนเดิม: เอเจนต์ของแอปยังคงใช้บริการของแอป
การเปลี่ยนแปลงค่าเริ่มต้นอื่น ๆ
- การโทร: โหมดทดสอบ ปิดอยู่ และ เปิดใช้งานวิดีโอ เปิดอยู่โดยค่าเริ่มต้น ตัวเลือกที่บันทึกไว้ในค่าการตั้งค่าจะยังคงอยู่ การโทรยังปฏิบัติตามประเภทของชุมชน (ดู การโทรและเสียง)
- การปักหมุดข้อความไว้บนสุดเป็นหน้าที่ของผู้ดูลระบบของช่อง ผู้ดูลระบบของชุมชน และผู้ดูแล (ที่มี จัดการข้อความ); สมาชิกของข้อความส่วนตัวหรือข้อความกลุ่มยังคงทำได้
- ช่องที่ถูกเก็บถาวรสามารถรับสมาชิกรายใหม่ได้ ซึ่งพวกเขาสามารถอ่านประวัติได้ ไม่มีใครโพสต์ รีแอคชัน หรือเปลี่ยนแปลงสิ่งใดในนั้น
การย้ายจาก Mattermost
Antimatter ใช้โครงสร้างฐานข้อมูลของ Mattermost และเพิ่มตารางของตัวเอง จึงสามารถรับช่วงต่อฐานข้อมูล PostgreSQL และไฟล์ของเซิร์ฟเวอร์ Mattermost ได้ ลองทำกับสำเนาข้อมูลก่อน:
- สำรองข้อมูลฐานข้อมูล Mattermost, ที่เก็บไฟล์ (
data/หรือ S3 bucket) และconfig.jsonจากนั้นหยุด Mattermost - กู้คืนฐานข้อมูลเข้าสู่ PostgreSQL ของ Antimatter หรือชี้ Antimatter ไปยังสำเนาของฐานข้อมูลนั้น (
AM_SQLSETTINGS_DATASOURCE) - คัดลอกไฟล์เข้าสู่ที่เก็บของ Antimatter โดยรักษาเส้นทางเดิม: ไปยัง S3 bucket ของ
antimatterด้วยเครื่องมือ S3 หรือไปยังdata/ด้วยอาร์ไคฟ์การปล่อยเวอร์ชัน - นำการตั้งค่าของคุณกลับมาใช้: คัดลอก
config.jsonหรือย้ายเข้าสู่ฐานข้อมูลด้วยamctl --local config migrate(ดู การตั้งค่า) ตัวแปรสภาพแวดล้อมMM_ของคุณยังคงทำงานได้; เปลี่ยนชื่อเป็นAM_เมื่อสะดวก - เริ่ม Antimatter และติดตามบันทึกขณะมันอัปเกรดฐานข้อมูล จากนั้นตรวจสอบ คอนโซลระบบ › ปลั๊กอิน › การจัดการปลั๊กอิน Antimatter จะติดตั้งการสร้างของ Calls, Playbooks, Kanban (Boards), Agents และอินทิเกรชันของมันเองเมื่อพวกนั้นใหม่กว่าเวอร์ชันที่ติดตั้งอยู่ หาก Mattermost มีเวอร์ชันที่ใหม่กว่าของหนึ่งในนั้น ให้ลบแอปนั้นและรีสตาร์ท Antimatter เพื่อให้การติดตั้งของมันเองเสร็จสมบูรณ์
- ตั้้งค่าการแจ้งเตือนแบบพุชใหม่อีกครั่ง ดวยการใช้ push proxy ของคุนเอง: Antimatter จะไม่ส่่งการแจ้งเตือนไปย้งเซิรฟ์เวอรฟ์การแจ้งเตือนของ Mattermost ท้้งท่ีเป็นเซิรฟ์เวอรฟ์ทดสอบหรือท่ีเข้้าถึงได้ออนไลน์ เพราะเซิรฟ์เวอรฟ์เหล่าน้ีจะส่่งการแจ้งเตือนไปย้งแอปของ Mattermost เองเท่านั้้น จนกว่าคุนจะเปลี่่ยนเซิรฟ์เวอรฟ์การแจ้งเตือนแบบพุช เซิรฟ์เวอรฟ์จะไม่ส่่งการแจ้งเตือนแบบพุชเลย (ดูการแจ้งเตือนแบบพุช)
Antimatter ไม่ติดต่อใช้บริการใด ๆ ที่ดำเนินการโดย Mattermost, Inc. (ดู การเชื่อมต่อไปยังบริการภายนอก) แม้การตั้งค่าของคุณจะยังระบุไว้ก็ตาม:
- เซิร์ฟเวอร์การแจ้งเตือนแบบ push ของ Mattermost ยังคงถูกเก็บไว้ในตั้งค่า แต่จะไม่ถูกใช้งาน;
- ท่ีอยู้ของ Mattermost สำหรบั Marketplace (URL ของ Marketplace) และสำหรบัประกาศของผลิ่ตภัณฑ์ จะถูกลบออก;
- ลิงก์ดาวน์โหลดแอปท่ีเป็นค่าเริ่มต้นของ Mattermost (ลิงก์หน้าดาวน์โหลดแอป Antimatter, ลิงก์ดาวน์โหลดแอป Android และ ลิงก์ดาวน์โหลดแอป iOS) จะถูกลบออกและเปลี่่ยนไปย้งหน้าดาวน์โหลดแอปของ Antimatter บน GitHub; ลิงก์ท่ีคุนตั้้งค่าเองจะถูกรักเร้นไว้;
- แอป Calls ใช้เซิร์ฟเวอร์ STUN สาธารณะของ Cloudflare แทนที่จะใช้ของ Mattermost โดยไม่มีการเปลี่ยนแปลงค่าที่ตั้งไว้ (ดู การโทร);
- the security update check and crash reporting are gone, and so are their System Console settings (Enable Security Alerts, Enable Diagnostics and Error Reporting) and the Notices page.
ซ็อกเก็ตสำหรับโหมดท้องถิ่นตอนนี้คือ /var/tmp/antimatter_local.socket; amctl จะลองใช้ /var/tmp/mattermost_local.socket เดิมด้วย Mattermost รองรับเฉพาะ PostgreSQL ในเวอร์ชันล่าสุด และ Antimatter ก็เช่นกัน: ย้ายฐานข้อมูล MySQL ไปยัง PostgreSQL ก่อน หากต้องการกลับไปใช้ Mattermost หลังจาก Antimatter อัปเกรดฐานข้อมูลแล้ว คุณต้องกู้คืนข้อมูลสำรอง (backup) ของ Mattermost ของคุณ
ส่งออกและนำเข้าข้อมูล
รูปแบบการส่งออกข้อมูลจำนวนมาก (bulk export) ช่วยย้ายข้อมูลระหว่างเซิร์ฟเวอร์: ทั้งเซิร์ฟเวอร์, ชุมชนบางส่วน หรือช่องบางส่วน พร้อมไฟล์แนบ รูปภาพโปรไฟล์ และอิโมจิกำหนดเอง หากคุณต้องการ
# on the source server
amctl export create --team-name design --include-profile-pictures
amctl export list
amctl export download <export file> design.zip
# on the destination server
amctl import upload design.zip
amctl import list available
amctl import process <uploaded file> --imported-users active
ดูสถานะของงานด้วย amctl export job list และ amctl import job list สำหรับงานส่งออกชุมชนหรือช่อง จำเป็นต้องใช้ --imported-users: ใช้ active เมื่อผู้ใช้ย้ายมาที่เซิร์ฟเวอร์นี้ และ inactive เมื่อนำเข้าข้อมูลไปยังเซิร์ฟเวอร์ที่ผู้ใช้เหล่านั้นมีบัญชีอยู่แล้ว เพื่อให้บัญชีที่สร้างขึ้นจากการจับคู่ที่ไม่ชัดเจนยังคงถูกปิดอยู่จนกว่าผู้ดูแลระบบจะตรวจสอบ --destination-team-name ใช้สำหรับนำเข้าข้อมูลไปยังชุมชนที่มีอยู่แล้ว การส่งออกและนำเข้าข้อมูลจะถูกเก็บไว้ในพื้นที่จัดเก็บของเซิร์ฟเวอร์ (ExportSettings.Directory, ImportSettings.Directory) เป็นเวลา 30 วันโดยค่าเริ่มต้น
บนเซิร์ฟเวอร์เอง คำสั่ง antimatter export bulk และ antimatter import bulk --apply ทำหน้าที่เดียวกันจากไฟล์ โดยไม่ต้องใช้ API