התקנת API של BaaS

Edge for Private Cloud גרסה 4.18.01

סקירה כללית בנושא התקנה

אחרי שמתקינים את הכלי apigee-setup ב-Edge בצומת, משתמשים בו כדי להתקין רכיב BaaS אחד או יותר בצומת.

הפורמט של הכלי apigee-setup הוא:

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

מעבירים קובץ תצורה לכלי apigee-setup שמכיל את המידע על ההתקנה. אם בקובץ התצורה חסר מידע נדרש, שירות apigee-setup יציג הנחיה להזין אותו בשורת הפקודה.

הדרישה היחידה היא שקובץ התצורה יהיה נגיש או קריא למשתמש ה-apigee.

לדוגמה, משתמשים בפקודה הבאה כדי להתקין את API BaaS Stack:

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig

ציון הרכיבים להתקנה

הכלי setup.sh של Apigee תומך בכמה אפשרויות להתקנת רכיבי API BaaS. בהוראות שבהמשך נעשה שימוש באפשרויות העצמאיות (c, ‏ e, ‏ b ו-p), אבל אפשר להשתמש באפשרויות שונות בהתאם להגדרת הצומת:

אפשרות

תיאור

e

מתקינים את ElasticSearch בלבד.

b

התקנה של API BaaS Stack בלבד, שכוללת גם את Tomcat.

p

התקנה של API BaaS Portal בלבד, שכוללת גם את ההתקנה של הנתב Nginx לשימוש כשרת אינטרנט.

c

מתקינים את Cassandra בלבד.

eb

מתקינים את ElasticSearch,‏ API BaaS Stack ו-Tomcat בצומת.

ebp

מתקינים את ElasticSearch, ‏ API BaaS Portal, ‏ API BaaS Stack ו-Tomcat, אבל לא את Cassandra. הפורטל קל מאוד, ולכן לא נדרשים משאבים נוספים לצורך כך.

asa

התקנה של כל הרכיבים של API BaaS בצומת יחיד (Cassandra, ‏ Elasticsearch, ‏ API BaaS Stack, ‏ API BaaS Portal, ‏ Tomcat). אפשר להשתמש באפשרות הזו לפיתוח ובדיקה בלבד, ולא לסביבת ייצור.

יצירת קובץ תצורה

קובץ התצורה מכיל את כל המידע הנדרש להתקנה של API BaaS. לרוב אפשר להשתמש באותו קובץ תצורה כדי להתקין את כל הרכיבים בהתקנה של BaaS.

לכל טופולוגיית התקנה שמתוארת בהמשך מוצג קובץ תצורה לדוגמה לאותה טופולוגיה. למידע מלא על קובץ התצורה, ראו חומר עזר בנושא קובץ תצורה של BaaS.

התקנה של API BaaS בצומת יחיד

למטה מוצג קובץ התצורה להתקנת API BaaS בצומת יחיד. עורכים את הקובץ הזה לפי הצורך בהתאם לתצורה שלכם. למידע מלא על קובץ התצורה, ראו חומר עזר בנושא קובץ תצורה של BaaS.

IP1=192.168.56.101   # IP address of single node

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWord

# Because you are installing Cassandra,
# specify Cassandra data center and rack suffix.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1"

# Specify the Cassandra region.
REGION=dc-1

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify Cassandra data center name.
BAAS_CASS_LOCALDC=dc-1

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=dc-1

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For dc-1 with one Cassandra node, it is dc-1:1.
BAAS_CASS_REPLICATION=dc-1:1

# Defines the initial contact points for members of the BaaS cluster. 
# For a single node install, specify the IP address of the node. 
BAAS_CLUSTER_SEEDS="dc-1:$IP1"

# Single ElasticSearch IP.
ES_HOSTS="$IP1"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# IP/DNS and port 8080 of a single Stack node.
BAAS_USERGRID_URL="http://$IP1:8080"

# URL and port of the BaaS Portal node.  
BAAS_PORTAL_URL="http://$IP1:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y
SMTPMAILFROM="My Company <myco@company.com>"

כדי להתקין את API BaaS בצומת משלו:

  1. מתקינים את הכלי apigee-setup של Edge בצומת באמצעות האינטרנט או באמצעות התהליך ללא אינטרנט. מידע נוסף זמין במאמר התקנת כלי ההגדרה של Edge apigee-setup.
  2. בשורת הפקודה, מריצים את סקריפט ההגדרה:
    > /opt/apigee/apigee-setup/bin/setup.sh -p asa -f configFile

    האפשרות ' -p asa' מציינת להתקין את כל רכיבי ה-API BaaS בצומת יחיד (Cassandra, Elasticsearch, API BaaS Stack, API Baacat).
    קובץ התצורה חייב להיות נגיש או קריא למשתמש 'apigee'.
  3. מכיוון שהתקנתם את ElasticSearch בצומת עצמאי, צריך לשנות את אפשרות ברירת המחדל של הזיכרון כדי להגדיל את הזיכרון שהוקצה ל-ElasticSearch מ-4GB ל-6GB:
    1. פותחים את /opt/apigee/customer/application/elasticsearch.properties בעורך. אם הקובץ הזה לא קיים, יוצרים אותו.
    2. מגדירים את המאפיין setenv_elasticsearch_max_mem_size לערך 6g (ברירת המחדל היא 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. שומרים את הקובץ.
    4. מריצים את הפקודה הבאה:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart
  4. ?מוסיפים ארגון כפי שמתואר בהמשך בקטע הוספת ארגון חדש.

התצורה משלימה את ההגדרה בצומת.

התקנת API BaaS ב-7 או ב-10 צמתים

התהליך של התקנת גרסת 7 או 10 צמתים של API BaaS דומה מאוד. ההבדל היחיד הוא שבמקרה של:

  • בהתקנה עם 10 צמתים, צריך להתקין את שלושת הרכיבים של ElasticSearch ואת שלושת הרכיבים של API BaaS Stack בצמתים נפרדים, כך שיהיה סך של שישה צמתים. זו ההגדרה המומלצת לביצועים הכי טובים, כי ל-ElasticSearch נדרשת כמות גדולה של קלט/פלט (I/O) וזיכרון בדיסק.
  • התקנה עם 7 צמתים: צריך להתקין את שלושת הרכיבים של ElasticSearch ואת שלושת הרכיבים של API BaaS Stack באותו צומת, כך שיהיה סך של שלושה צמתים.

גם בגרסה עם 7 צמתים וגם בגרסה עם 10 צמתים של API BaaS, צריך להתחבר לאשכול של Cassandra. אם כבר התקנת את Edge, אפשר להתחבר לאשכול Cassandra, כלומר אין צורך להתקין את Cassandra כחלק מהתקנת BaaS של API.

בהמשך מוצג קובץ תצורה לדוגמה להתקנה של API BaaS עם 10 צמתים. אם מתקינים את הרכיבים של ElasticSearch ו-API BaaS Stack באותם שלושה צמתים, צריך לערוך את הקובץ כך:

  • כתובות ה-IP1 ו-IP4 מוגדרות לאותה כתובת IP
  • IP2 ו-IP5 מוגדרים לאותה כתובת IP
  • כתובות IP3 ו-IP6 מוגדרות לאותה כתובת IP

עורכים את הקובץ הזה לפי הצורך בהתאם לתצורה שלכם. למידע מלא על קובץ התצורה, ראו חומר עזר בנושא קובץ התצורה של BaaS.

# Specify IP address or DNS name of node.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra (shared with Edge or standalone)

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWord

# Only if you are installing Cassandra.
# Specify Cassandra data center and rack suffix.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:1,1 $IP9:1,1 $IP10:1,1"

# If connecting to existing Cassandra nodes, 
# specify Cassandra IPs.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP8 $IP9 $IP10"

# Specify the Cassandra region.
REGION=dc-1

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name.
BAAS_CASS_LOCALDC=dc-1    # Default is dc-1.

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=dc-1

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For example, for dc-1 with three Cassandra nodes, it is dc-1:3.
BAAS_CASS_REPLICATION=dc-1:3

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes. 
BAAS_CLUSTER_SEEDS="dc-1:$IP4,dc-1:$IP5"

# ElasticSearch IPs or DNS names, separated by spaces.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y
SMTPMAILFROM="My Company <myco@company.com>"

אופציונלי – התקנת Cassandra: מכונה 8, 9 ו-10

אפשר לחבר את API BaaS לאותו אשכול Cassandra שבו Edge משתמש. אם לא התקנתם את Edge, תוכלו להתקין את Cassandra לשימוש ב-API BaaS.

אפשר להשתמש באימות באשכול Cassandra, או להשבית את האימות ב-Cassandra. למידע נוסף, ראו הפעלת אימות ב-Cassandra.

  1. מתקינים את הכלי apigee-setup של Edge בצומת באמצעות ההליך באינטרנט או בלי אינטרנט. מידע נוסף זמין במאמר התקנה של הכלי apigee-setup ב-Edge.
  2. בשורת הפקודה, מריצים את סקריפט ההגדרה:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

    האפשרות -p c מציינת להתקין את Cassandra.
    קובץ התצורה חייב להיות נגיש או קריא למשתמש 'apigee'.

ההגדרה משלימה את ההגדרה של מאגר הנתונים בצומת.

שימו לב ש-JMX מופעל כברירת מחדל עבור Cassandra. הגישה מרחוק של JMX ל-Cassandra לא דורשת סיסמה. אפשר להגדיר את Cassandra להשתמש באימות עבור JMX. מידע נוסף זמין במאמר איך עוקבים.

הגדרת משימה של cron ב-Cassandra

אם צריך להתקין את Cassandra, צריך להגדיר משימה ב-cron שמשתמשת ב-nodetool כדי לנקות את המנעולים ולהריץ אותה כל שעה בכל צומת של Cassandra.

אם יש לכם כמה צמתים של Cassandra, כדאי לשנות את זמן הפעולה של cron job בכל שרת בחמש דקות, כדי שכל הצמתים לא יבצעו שטיפה בו-זמנית.

משימה ה-cron צריכה להריץ את הפקודה הבאה:

/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks

כאשר IP_address היא כתובת ה-IP של צומת Cassandra.

מתקינים את ElasticSearch: Machine 1, 2 ו-3

כדי להתקין את ElasticSearch בצומת משלו:

  1. מתקינים את הכלי apigee-setup של Edge בצומת באמצעות האינטרנט או באמצעות תהליך ללא אינטרנט. מידע נוסף זמין במאמר התקנת הכלי apigee-setup של Edge.
  2. בשורת הפקודה, מריצים את סקריפט ההגדרה:
    > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    האפשרות '-p e' מציינת התקנה של ElasticSearch.
    קובץ התצורה חייב להיות נגיש או קריא למשתמש 'apigee'.
  3. (אופציונלי) אם מתקינים את ElasticSearch בצומת עצמאי, כלומר המערכת לא מותקנת עם API BaaS Stack, עליכם לשנות את אפשרות ברירת המחדל של הזיכרון כדי להגדיל את הזיכרון שהוקצה ל-ElasticSearch מ-4GB ל-6GB:
    1. פותחים את הקובץ /opt/apigee/customer/application/elasticsearch.properties בעורך. אם הקובץ הזה לא קיים, יוצרים אותו.
    2. מגדירים את המאפיין setenv_elasticsearch_max_mem_size לערך 6g (ברירת המחדל היא 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. שומרים את הקובץ.
    4. מריצים את הפקודה הבאה:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

ההגדרה מסיימת את ההגדרה בצומת.

התקנה של API BaaS Stack: מכונות 4, 5 ו-6

כדי להתקין את API BaaS Stack בצומת משלו:

  1. התקנת כלי ההגדרה של Edge apigee בצומת באמצעות תהליך של אינטרנט או ללא חיבור לאינטרנט. למידע נוסף, ראו התקנת כלי ההגדרה של Edge apigee-setup.
  2. בשורת הפקודה, מריצים את סקריפט ההגדרה:
    > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    האפשרות '-p b' מציינת התקנה של API BaaS Stack.
    קובץ התצורה חייב להיות נגיש או קריא למשתמש 'apigee'.

אחרי שמנהל ההתקנה מאחזר את פרטי הכניסה הנכונים של האדמין, הוא מתקין את Tomcat, יוצר מרחבי מפתחות של API BaaS ומגדיר את API BaaS Stack בשרת. SMTP מוגדר גם לאפשר לממשק המשתמש לשלוח אימיילים לאישור סיסמה.

התקנה של פורטל API BaaS: מכונה 7

כדי להתקין את פורטל BaaS API:

  1. התקנת כלי ההגדרה של Edge apigee בצומת באמצעות תהליך של אינטרנט או ללא חיבור לאינטרנט. מידע נוסף זמין במאמר התקנת הכלי apigee-setup של Edge.
  2. בשורת הפקודה, מריצים את סקריפט ההגדרה:
    > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile

    האפשרות '-p p' מציינת התקנה של API BaaS Portal.
    קובץ התצורה צריך להיות נגיש או קריא למשתמש ה-apigee.

    תוכנת ההתקנה מפעילה את שרת האינטרנט Nginx ולאחר מכן מסיימת את ההגדרה של פורטל API BaaS.
  3. ?השלב הבא תלוי בהתקנה.
    1. אם יש לכם מאזן עומסים לפני צמתים של Portalor Stack, בקטע הבא מוסבר איך להגדיר API BaaS למאזני העומסים.
    2. אם אין מאזן עומסים בחזית לצמתים של Portalor Stack, צריך להצטרף לארגון כפי שמתואר בהמשך במאמר קליטת ארגון חדש.

כותבים את כתובת ה-URL של פורטל BaaS ל-API. זו כתובת ה-URL שמזינים בדפדפן כדי לגשת לממשק המשתמש של פורטל BaaS Portal.

הגדרת צומתי BaaS של API למאזן עומסים של Stack או פורטל

אם אתם כוללים מאזן עומסים לפני צמתים של Stack או Portal, עליכם להגדיר את הצמתים עם כתובת ה-URL הנכונה של מאזן העומסים. לדוגמה, לצמתים של Stack נדרש את המידע הזה כשהם:

  • הכללת כתובת URL בתשובות לבקשות API של BaaS.
  • הוספת קישורים בתבניות אימייל כשמאפסים סיסמה או שולחים התראות אחרות.
  • הפניית משתמשים לדפי פורטל ספציפיים.

אם משתמשים במאזן עומסים לפני צומתי המקבץ, צריך להגדיר את המאפיין הבא ב-/opt/apigee/customer/application/usergrid.properties:

usergrid-deployment_usergrid.api.url.base=http://localhost:8080

מחליפים את http://localhost:8080 בכתובת ה-URL של מאזן העומסים. אם מאזן העומסים מוגדר לשימוש ב-TLS, צריך להשתמש בפרוטוקול HTTPS. צריך לכלול את היציאה רק אם משתמשים ביציאה לא סטנדרטית, כלומר יציאה שאינה יציאה 80 ל-HTTP או יציאה 443 ל-HTTPS.

אם אתם משתמשים במאזן עומסים מול צמתים של Stack, צריך גם להגדיר את המאפיין הבא בקובץ /opt/apigee/customer/application/portal.properties :

baas.portal.config.overrideUrl=http://localhost:8080

מחליפים את http://localhost:8080 בכתובת ה-URL של מאזן העומסים של ה-Stack.

אם משתמשים במאזן עומסים לפני צומת הפורטל, צריך להגדיר את המאפיינים הבאים ב-usergrid.properties:

usergrid-deployment_portal.url=http://localhost:9000

מחליפים את http://localhost:9000 בכתובת ה-URL של מאזן העומסים. אם מאזן העומסים מוגדר לשימוש ב-TLS, צריך להשתמש בפרוטוקול HTTPS. צריך לכלול את היציאה רק אם משתמשים ביציאה לא סטנדרטית, כלומר יציאה שאינה יציאה 80 ל-HTTP או יציאה 443 ל-HTTPS.

אחרי שעורכים את usergrid.properties ואת portal.properties:

  1. מגדירים את צומת ה-Stack:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. מפעילים מחדש את סטאק BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart

    הערה: כשמפעילים מחדש צמתים של BaaS Stack, צריך להפעיל אותם מחדש באותו סדר שבו הם מופיעים ברשימה BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS מכיל לכל היותר שניים מהצמתים של Stack. אחרי שמפעילים מחדש את שני הצמתים האלה לפי הסדר, אפשר להפעיל מחדש את שאר הצמתים בסדר כלשהו.

  3. אם שיניתם את portal.properties, צריך להגדיר את צומת הפורטל:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal Configuration
  4. מפעילים מחדש את BaaS Portal:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal restart

הצטרפות לארגון חדש

תהליך ההצטרפות הוא התהליך של יצירת ארגון ומנהל ארגון. אחרי יצירת הארגון והאדמין שלו, תוכלו להתחבר לממשק המשתמש של API BaaS Portal ולשלוח בקשות ל-API BaaS API ל-REST.

כשיוצרים ארגון, כתובת האימייל של האדמין של הארגון:

  • חייבת להיות שונה מכתובת האימייל של אדמין המערכת.
  • השם חייב להיות ייחודי לכל ארגון אחר. כלומר, אי אפשר ליצור שני ארגונים עם אותה כתובת אימייל לאדמין הארגוני. עם זאת, אחרי יצירת הארגון, אפשר להוסיף עוד אדמינים שאפשר לשכפל במספר ארגונים.

כדי להתחיל את תהליך ההצטרפות, צריך להשתמש בסקריפט create_org_and_user.py של Python. אם מריצים את הסקריפט הזה בלי ארגומנטים בשורת הפקודה, יוצגו לכם הנחיות למתן כל המידע הנדרש:

> python create_org_and_user.py

לחלופין, אפשר להעביר כל אחת מהאפשרויות או את כולן כארגומנטים של שורת הפקודה. תתבקשו להזין את כל המידע שלא ציינתם בשורת הפקודה:

> python create_org_and_user.py -o '<org name>'
> python create_org_and_user.py -o '<org name>' -a '<new admin email>' -p '<new admin password>'

כדי ליצור ארגון:

  1. עוברים לספרייה /opt/apigee/baas-usergrid/bin.
  2. מריצים את סקריפט Python‏ create_org_and_user.py.
    תתבקשו להזין את שם המשתמש והסיסמה של האדמין במערכת BaaS, כדי שרק אדמין מערכת יוכל להריץ אותה.
  3. מתחברים ל-API BaaS Portal בדפדפן אינטרנט באמצעות כתובת ה-URL שציינתם בסוף ההתקנה של כתובת ה-API BaaS Portal. כדי לגשת לפורטל, מזינים את כתובת ה-URL של API BaaS Portal בפורמט:
    http://{portalExternalIP}:9000/

    הערה: כתובת ה-IP היא כתובת ה-IP החיצונית או שם המארח של מכונה בפורטל. מוודאים שהיציאה פתוחה.
  4. כשמסך ההתחברות לפורטל מופיע, אפשר:
    • מתחברים באמצעות שם המשתמש והסיסמה של האדמין הארגוני.
    • מתחברים באמצעות שם המשתמש והסיסמה של האדמין של אדמיני המערכת.

גישה ל-API BaaS ל-REST

כדי לגשת ל-API של BaaS ל-REST API, צריך להשתמש בכתובת URL בטופס:

https://{loadBalancerIP}:8080/{your-org}/{your-app}

בסביבת פיתוח, אפשר להתקין את כל הרכיבים של API BaaS בצומת יחיד, כלומר יש לכם סטאק API BaaS יחיד. לחלופין, יכול להיות שיש לכם סביבה קטנה עם צומת יחיד של API BaaS Stack ללא מאזן עומסים. בסביבות מהסוגים האלה, אפשר לבצע קריאות API ישירות לצומת API BaaS Stack:

curl -v "http://portalExternalIP:8080/status"

למידע נוסף על תחילת העבודה עם API BaaS Portal, עיינו בתיעוד של Apigee בכתובת: http://apigee.com/docs/content/build-apps-home.