import{S as Bd,i as Hd,s as Md,e as a,k as d,w,t as n,N as Kd,c as l,d as t,m as u,a as r,x as m,h as i,b as c,P as zd,G as e,g as h,y as A,q as O,o as P,B as T,v as jd}from"../chunks/vendor-hf-doc-builder.js";import{T as Wd}from"../chunks/Tip-hf-doc-builder.js";import{I as $}from"../chunks/IconCopyLink-hf-doc-builder.js";function Fd(Ra){let _;return{c(){_=n(`Storage in Hugging Face Spaces is ephemeral, and the data you store in the default
configuration can be lost in a reboot or reset of the Space. Because of this,
we strongly encourage you to use the default configuration only for testing and
demonstration purposes.`)},l(D){_=i(D,`Storage in Hugging Face Spaces is ephemeral, and the data you store in the default
configuration can be lost in a reboot or reset of the Space. Because of this,
we strongly encourage you to use the default configuration only for testing and
demonstration purposes.`)},m(D,C){h(D,_,C)},d(D){D&&t(_)}}}function Zd(Ra){let _,D,C,q,mt,ge,Ul,At,kl,$a,L,be,Yl,xl,ye,Bl,Hl,we,Ml,Kl,Da,ot,zl,Ia,x,J,Ot,me,jl,Pt,Wl,Na,at,Fl,Ga,Ae,Tt,ds,Ua,lt,Zl,ka,I,Ct,Oe,ql,Lt,Jl,Ql,Vl,Rt,Pe,Xl,$t,er,tr,or,Dt,R,ar,It,lr,rr,Nt,nr,ir,Gt,sr,cr,Ya,B,Q,Ut,Te,dr,kt,ur,xa,rt,hr,Ba,V,Ha,X,fr,Ce,pr,Er,Ma,H,ee,Yt,Le,_r,xt,vr,Ka,nt,Sr,za,N,Bt,Ht,gr,br,Mt,Kt,yr,wr,zt,jt,mr,ja,M,te,Wt,Re,Ar,Ft,Or,Wa,G,Pr,$e,Tr,Cr,Zt,Lr,Rr,Fa,U,qt,oe,Jt,$r,Dr,Qt,Ir,Nr,Gr,Vt,it,Xt,Ur,kr,Yr,eo,st,to,xr,Br,Za,ae,Hr,oo,Mr,Kr,qa,K,le,ao,De,zr,lo,jr,Ja,re,Wr,Ie,Fr,Zr,Qa,ct,qr,Va,f,ro,ne,no,Jr,Qr,io,Vr,Xr,en,so,dt,co,tn,on,an,uo,ut,ho,ln,rn,nn,fo,ht,po,sn,cn,dn,Eo,ft,_o,un,hn,fn,vo,pt,So,pn,En,_n,go,ie,bo,vn,Sn,yo,gn,bn,Xa,Et,yn,el,z,se,wo,Ne,wn,mo,mn,tl,ce,An,Ge,On,Pn,ol,j,de,Ao,Ue,Tn,Oo,Cn,al,p,Po,ue,To,Ln,Rn,Co,$n,Dn,In,Lo,ke,Ro,Nn,Gn,$o,Un,kn,Do,Ye,Io,Yn,xn,No,Bn,Hn,Go,xe,Uo,Mn,Kn,ko,zn,jn,Yo,Be,xo,Wn,Fn,Bo,Zn,qn,Ho,_t,Mo,Jn,Qn,ll,W,he,Ko,He,Vn,zo,Xn,rl,v,jo,fe,Wo,ei,ti,Fo,oi,ai,li,Zo,Me,qo,ri,ni,Jo,ii,si,Qo,Ke,Vo,ci,di,Xo,ui,hi,ea,vt,ta,fi,pi,Ei,oa,pe,aa,_i,vi,la,Si,gi,nl,F,Ee,ra,ze,bi,na,yi,il,S,ia,_e,sa,wi,mi,ca,Ai,Oi,Pi,da,je,ua,Ti,Ci,ha,Li,Ri,fa,We,pa,$i,Di,Ea,Ii,Ni,_a,Fe,va,Gi,Ui,Sa,ki,Yi,ga,St,ba,xi,Bi,sl,Z,ve,ya,Ze,Hi,wa,Mi,cl,E,Ki,qe,zi,ji,Je,Wi,Fi,Qe,Zi,qi,Ve,Ji,Qi,Xe,Vi,Xi,dl;return ge=new $({}),me=new $({}),Te=new $({}),V=new Wd({props:{warning:!0,$$slots:{default:[Fd]},$$scope:{ctx:Ra}}}),Le=new $({}),Re=new $({}),De=new $({}),Ne=new $({}),Ue=new $({}),He=new $({}),ze=new $({}),Ze=new $({}),{c(){_=a("meta"),D=d(),C=a("h1"),q=a("a"),mt=a("span"),w(ge.$$.fragment),Ul=d(),At=a("span"),kl=n("\u{1F7E7} Label Studio on Spaces"),$a=d(),L=a("p"),be=a("a"),Yl=n("Label Studio"),xl=n(" is an "),ye=a("a"),Bl=n(`open-source data labeling
platform`),Hl=n(` for labeling,
annotating, and exploring many different data types. Additionally, Label Studio
includes a powerful `),we=a("a"),Ml=n(`machine learning
interface`),Kl=n(` that can be used for new model
training, active learning, supervised learning, and many other training
techniques.`),Da=d(),ot=a("p"),zl=n(`This guide will teach you how to deploy Label Studio for data
labeling and annotation within the Hugging Face Hub. You can use the default
configuration of Label Studio as a self-contained application hosted completely
on the Hub using Docker for demonstration and evaluation purposes, or you can
attach your own database and cloud storage to host a fully-featured
production-ready application hosted on Spaces.`),Ia=d(),x=a("h2"),J=a("a"),Ot=a("span"),w(me.$$.fragment),jl=d(),Pt=a("span"),Wl=n("\u26A1\uFE0F Deploy Label Studio on Spaces"),Na=d(),at=a("p"),Fl=n("You can deploy Label Studio on Spaces with just a few clicks:"),Ga=d(),Ae=a("a"),Tt=a("img"),Ua=d(),lt=a("p"),Zl=n("Spaces requires you to define:"),ka=d(),I=a("ul"),Ct=a("li"),Oe=a("p"),ql=n("An "),Lt=a("strong"),Jl=n("Owner"),Ql=n(`: either your personal account or an organization you\u2019re a
part of.`),Vl=d(),Rt=a("li"),Pe=a("p"),Xl=n("A "),$t=a("strong"),er=n("Space name"),tr=n(`: the name of the Space within the account
you\u2019re creating the Space.`),or=d(),Dt=a("li"),R=a("p"),ar=n("The "),It=a("strong"),lr=n("Visibility"),rr=n(": "),Nt=a("em"),nr=n("private"),ir=n(` if you want the
Space to be visible only to you or your organization, or `),Gt=a("em"),sr=n("public"),cr=n(` if you want
it to be visible to other users or applications using the Label Studio API
(suggested).`),Ya=d(),B=a("h2"),Q=a("a"),Ut=a("span"),w(Te.$$.fragment),dr=d(),kt=a("span"),ur=n("\u{1F680} Using the Default Configuration"),xa=d(),rt=a("p"),hr=n(`By default, Label Studio is installed in Spaces with a configuration that uses
local storage for the application database to store configuration, account
credentials, and project information. Labeling tasks and data items are also held
in local storage.`),Ba=d(),w(V.$$.fragment),Ha=d(),X=a("p"),fr=n(`After launching Label Studio, you will be presented with the standard login
screen. You can start by creating a new account using your email address and
logging in with your new credentials. Periodically after logging in, Label
Studio will warn you that the storage is ephemeral and data could be
lost if your Space is restarted. You will also be preset with a prompt from
Heidi, the helpful Label Studio mascot, to create a new project to start
labeling your data. To get started, check out the Label Studio `),Ce=a("a"),pr=n(`\u201CZero to One\u201D
tutorial`),Er=n(`
with a guide on how to build an annotation interface for sentiment analysis.`),Ma=d(),H=a("h2"),ee=a("a"),Yt=a("span"),w(Le.$$.fragment),_r=d(),xt=a("span"),vr=n("\u{1F6E0}\uFE0F Configuring a Production-Ready Instance of Label Studio"),Ka=d(),nt=a("p"),Sr=n(`To make your Space production-ready, you will need to make three configuration
changes:`),za=d(),N=a("ul"),Bt=a("li"),Ht=a("p"),gr=n("Disable the unrestricted creation of new accounts."),br=d(),Mt=a("li"),Kt=a("p"),yr=n("Enable persistence by attaching an external database."),wr=d(),zt=a("li"),jt=a("p"),mr=n("Attach cloud storage for labeling tasks."),ja=d(),M=a("h3"),te=a("a"),Wt=a("span"),w(Re.$$.fragment),Ar=d(),Ft=a("span"),Or=n("Disable Unrestricted Creation of New Accounts"),Wa=d(),G=a("p"),Pr=n(`The default configuration on Label Studio allows for the unrestricted creation
of new accounts for anyone who has the URL for your application. You can
`),$e=a("a"),Tr=n("restrict signups"),Cr=n(`
by adding the following configuration secrets to your Space `),Zt=a("strong"),Lr=n("Settings"),Rr=n("."),Fa=d(),U=a("ul"),qt=a("li"),oe=a("p"),Jt=a("code"),$r=n("LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK"),Dr=n(": Setting this value to "),Qt=a("code"),Ir=n("true"),Nr=n(` will
disable unrestricted account creation.`),Gr=d(),Vt=a("li"),it=a("p"),Xt=a("code"),Ur=n("LABEL_STUDIO_USERNAME"),kr=n(`: This is the username of the account that you will
use as the first user in your Label Studio Space. It should be a valid email
address.`),Yr=d(),eo=a("li"),st=a("p"),to=a("code"),xr=n("LABEL_STUDIO_PASSWORD"),Br=n(`: The password that will be associated with the first
user account.`),Za=d(),ae=a("p"),Hr=n(`Restart the Space to apply these settings. The ability to create new accounts
from the login screen will be disabled. To create new accounts, you will need
to invite new users in the `),oo=a("code"),Mr=n("Organization"),Kr=n(` settings in the Label Studio
application.`),qa=d(),K=a("h3"),le=a("a"),ao=a("span"),w(De.$$.fragment),zr=d(),lo=a("span"),jr=n("Enable Configuration Persistence"),Ja=d(),re=a("p"),Wr=n(`By default, this Space stores all project configuration and data annotations in
local storage with SQLite. If the Space is reset, all configuration and
annotation data in the Space will be lost. You can enable configuration
persistence by `),Ie=a("a"),Fr=n(`connecting an external Postgres database to your
space`),Zr=n(`,
guaranteeing that all project and annotation settings are preserved.`),Qa=d(),ct=a("p"),qr=n(`Set the following secret variables to match your own hosted instance of
Postgres. We strongly recommend setting these as secrets to prevent leaking
information about your database service to the public in your spaces
definition.`),Va=d(),f=a("ul"),ro=a("li"),ne=a("p"),no=a("code"),Jr=n("DJANGO_DB"),Qr=n(": Set this to "),io=a("code"),Vr=n("default"),Xr=n("."),en=d(),so=a("li"),dt=a("p"),co=a("code"),tn=n("POSTGRE_NAME"),on=n(": Set this to the name of the Postgres database."),an=d(),uo=a("li"),ut=a("p"),ho=a("code"),ln=n("POSTGRE_USER"),rn=n(": Set this to the Postgres username."),nn=d(),fo=a("li"),ht=a("p"),po=a("code"),sn=n("POSTGRE_PASSWORD"),cn=n(": Set this to the password for your Postgres user."),dn=d(),Eo=a("li"),ft=a("p"),_o=a("code"),un=n("POSTGRE_HOST"),hn=n(`: Set this to the host that your Postgres database is running
on.`),fn=d(),vo=a("li"),pt=a("p"),So=a("code"),pn=n("POSTGRE_PORT"),En=n(`: Set this to the port that your Pogtgres database is running
on.`),_n=d(),go=a("li"),ie=a("p"),bo=a("code"),vn=n("STORAGE_PERSISTENCE"),Sn=n(": Set this to "),yo=a("code"),gn=n("1"),bn=n(` to remove the warning about ephemeral
storage.`),Xa=d(),Et=a("p"),yn=n(`Restart the Space to apply these settings. Information about users, projects,
and annotations will be stored in the database, and will be reloaded by Label
Studio if the space is restarted or reset.`),el=d(),z=a("h3"),se=a("a"),wo=a("span"),w(Ne.$$.fragment),wn=d(),mo=a("span"),mn=n("Enable Cloud Storage"),tl=d(),ce=a("p"),An=n(`By default, the only data storage enabled for this Space is local. In the case
of a Space reset, all data will be lost. To enable permanent storage, you must
enable a `),Ge=a("a"),On=n("cloud storage connector"),Pn=n(`.
Choose the appropriate cloud connector and configure the secrets for it.`),ol=d(),j=a("h4"),de=a("a"),Ao=a("span"),w(Ue.$$.fragment),Tn=d(),Oo=a("span"),Cn=n("Amazon S3"),al=d(),p=a("ul"),Po=a("li"),ue=a("p"),To=a("code"),Ln=n("STORAGE_TYPE"),Rn=n(": Set this to "),Co=a("code"),$n=n("s3"),Dn=n("."),In=d(),Lo=a("li"),ke=a("p"),Ro=a("code"),Nn=n("STORAGE_AWS_ACCESS_KEY_ID"),Gn=n(": "),$o=a("code"),Un=n("<YOUR_ACCESS_KEY_ID>"),kn=d(),Do=a("li"),Ye=a("p"),Io=a("code"),Yn=n("STORAGE_AWS_SECRET_ACCESS_KEY"),xn=n(": "),No=a("code"),Bn=n("<YOUR_SECRET_ACCESS_KEY>"),Hn=d(),Go=a("li"),xe=a("p"),Uo=a("code"),Mn=n("STORAGE_AWS_BUCKET_NAME"),Kn=n(": "),ko=a("code"),zn=n("<YOUR_BUCKET_NAME>"),jn=d(),Yo=a("li"),Be=a("p"),xo=a("code"),Wn=n("STORAGE_AWS_REGION_NAME"),Fn=n(": "),Bo=a("code"),Zn=n("<YOUR_BUCKET_REGION>"),qn=d(),Ho=a("li"),_t=a("p"),Mo=a("code"),Jn=n("STORAGE_AWS_FOLDER"),Qn=n(": Set this to an empty string."),ll=d(),W=a("h4"),he=a("a"),Ko=a("span"),w(He.$$.fragment),Vn=d(),zo=a("span"),Xn=n("Google Cloud Storage"),rl=d(),v=a("ul"),jo=a("li"),fe=a("p"),Wo=a("code"),ei=n("STORAGE_TYPE"),ti=n(": Set this to "),Fo=a("code"),oi=n("gcs"),ai=n("."),li=d(),Zo=a("li"),Me=a("p"),qo=a("code"),ri=n("STORAGE_GCS_BUCKET_NAME"),ni=n(": "),Jo=a("code"),ii=n("<YOUR_BUCKET_NAME>"),si=d(),Qo=a("li"),Ke=a("p"),Vo=a("code"),ci=n("STORAGE_GCS_PROJECT_ID"),di=n(": "),Xo=a("code"),ui=n("<YOUR_PROJECT_ID>"),hi=d(),ea=a("li"),vt=a("p"),ta=a("code"),fi=n("STORAGE_GCS_FOLDER"),pi=n(": Set this to an empty string."),Ei=d(),oa=a("li"),pe=a("p"),aa=a("code"),_i=n("GOOGLE_APPLICATION_CREDENTIALS"),vi=n(": Set this to "),la=a("code"),Si=n("/opt/heartex/secrets/key.json"),gi=n("."),nl=d(),F=a("h4"),Ee=a("a"),ra=a("span"),w(ze.$$.fragment),bi=d(),na=a("span"),yi=n("Azure Blob Storage"),il=d(),S=a("ul"),ia=a("li"),_e=a("p"),sa=a("code"),wi=n("STORAGE_TYPE"),mi=n(": Set this to "),ca=a("code"),Ai=n("azure"),Oi=n("."),Pi=d(),da=a("li"),je=a("p"),ua=a("code"),Ti=n("STORAGE_AZURE_ACCOUNT_NAME"),Ci=n(": "),ha=a("code"),Li=n("<YOUR_STORAGE_ACCOUNT>"),Ri=d(),fa=a("li"),We=a("p"),pa=a("code"),$i=n("STORAGE_AZURE_ACCOUNT_KEY"),Di=n(": "),Ea=a("code"),Ii=n("<YOUR_STORAGE_KEY>"),Ni=d(),_a=a("li"),Fe=a("p"),va=a("code"),Gi=n("STORAGE_AZURE_CONTAINER_NAME"),Ui=n(": "),Sa=a("code"),ki=n("<YOUR_CONTAINER_NAME>"),Yi=d(),ga=a("li"),St=a("p"),ba=a("code"),xi=n("STORAGE_AZURE_FOLDER"),Bi=n(": Set this to an empty string."),sl=d(),Z=a("h2"),ve=a("a"),ya=a("span"),w(Ze.$$.fragment),Hi=d(),wa=a("span"),Mi=n("\u{1F917} Next Steps, Feedback, and Support"),cl=d(),E=a("p"),Ki=n("To get started with Label Studio, check out the Label Studio "),qe=a("a"),zi=n(`\u201CZero to One\u201D
tutorial`),ji=n(`,
which walks you through an example sentiment analysis annotation project. You
can find a full set of resources about Label Studio and the Label Studio
community on at the `),Je=a("a"),Wi=n("Label Studio Home Page"),Fi=n(`. This
includes `),Qe=a("a"),Zi=n("full documentation"),qi=n(", an "),Ve=a("a"),Ji=n(`interactive
playground`),Qi=n(` for trying out different
annotation interfaces, and links to join the `),Xe=a("a"),Vi=n(`Label Studio Slack
Community`),Xi=n("."),this.h()},l(o){const s=Kd('[data-svelte="svelte-1phssyn"]',document.head);_=l(s,"META",{name:!0,content:!0}),s.forEach(t),D=u(o),C=l(o,"H1",{class:!0});var et=r(C);q=l(et,"A",{id:!0,class:!0,href:!0});var us=r(q);mt=l(us,"SPAN",{});var hs=r(mt);m(ge.$$.fragment,hs),hs.forEach(t),us.forEach(t),Ul=u(et),At=l(et,"SPAN",{});var fs=r(At);kl=i(fs,"\u{1F7E7} Label Studio on Spaces"),fs.forEach(t),et.forEach(t),$a=u(o),L=l(o,"P",{});var tt=r(L);be=l(tt,"A",{href:!0,rel:!0});var ps=r(be);Yl=i(ps,"Label Studio"),ps.forEach(t),xl=i(tt," is an "),ye=l(tt,"A",{href:!0,rel:!0});var Es=r(ye);Bl=i(Es,`open-source data labeling
platform`),Es.forEach(t),Hl=i(tt,` for labeling,
annotating, and exploring many different data types. Additionally, Label Studio
includes a powerful `),we=l(tt,"A",{href:!0,rel:!0});var _s=r(we);Ml=i(_s,`machine learning
interface`),_s.forEach(t),Kl=i(tt,` that can be used for new model
training, active learning, supervised learning, and many other training
techniques.`),tt.forEach(t),Da=u(o),ot=l(o,"P",{});var vs=r(ot);zl=i(vs,`This guide will teach you how to deploy Label Studio for data
labeling and annotation within the Hugging Face Hub. You can use the default
configuration of Label Studio as a self-contained application hosted completely
on the Hub using Docker for demonstration and evaluation purposes, or you can
attach your own database and cloud storage to host a fully-featured
production-ready application hosted on Spaces.`),vs.forEach(t),Ia=u(o),x=l(o,"H2",{class:!0});var ul=r(x);J=l(ul,"A",{id:!0,class:!0,href:!0});var Ss=r(J);Ot=l(Ss,"SPAN",{});var gs=r(Ot);m(me.$$.fragment,gs),gs.forEach(t),Ss.forEach(t),jl=u(ul),Pt=l(ul,"SPAN",{});var bs=r(Pt);Wl=i(bs,"\u26A1\uFE0F Deploy Label Studio on Spaces"),bs.forEach(t),ul.forEach(t),Na=u(o),at=l(o,"P",{});var ys=r(at);Fl=i(ys,"You can deploy Label Studio on Spaces with just a few clicks:"),ys.forEach(t),Ga=u(o),Ae=l(o,"A",{href:!0});var ws=r(Ae);Tt=l(ws,"IMG",{src:!0}),ws.forEach(t),Ua=u(o),lt=l(o,"P",{});var ms=r(lt);Zl=i(ms,"Spaces requires you to define:"),ms.forEach(t),ka=u(o),I=l(o,"UL",{});var gt=r(I);Ct=l(gt,"LI",{});var As=r(Ct);Oe=l(As,"P",{});var hl=r(Oe);ql=i(hl,"An "),Lt=l(hl,"STRONG",{});var Os=r(Lt);Jl=i(Os,"Owner"),Os.forEach(t),Ql=i(hl,`: either your personal account or an organization you\u2019re a
part of.`),hl.forEach(t),As.forEach(t),Vl=u(gt),Rt=l(gt,"LI",{});var Ps=r(Rt);Pe=l(Ps,"P",{});var fl=r(Pe);Xl=i(fl,"A "),$t=l(fl,"STRONG",{});var Ts=r($t);er=i(Ts,"Space name"),Ts.forEach(t),tr=i(fl,`: the name of the Space within the account
you\u2019re creating the Space.`),fl.forEach(t),Ps.forEach(t),or=u(gt),Dt=l(gt,"LI",{});var Cs=r(Dt);R=l(Cs,"P",{});var Se=r(R);ar=i(Se,"The "),It=l(Se,"STRONG",{});var Ls=r(It);lr=i(Ls,"Visibility"),Ls.forEach(t),rr=i(Se,": "),Nt=l(Se,"EM",{});var Rs=r(Nt);nr=i(Rs,"private"),Rs.forEach(t),ir=i(Se,` if you want the
Space to be visible only to you or your organization, or `),Gt=l(Se,"EM",{});var $s=r(Gt);sr=i($s,"public"),$s.forEach(t),cr=i(Se,` if you want
it to be visible to other users or applications using the Label Studio API
(suggested).`),Se.forEach(t),Cs.forEach(t),gt.forEach(t),Ya=u(o),B=l(o,"H2",{class:!0});var pl=r(B);Q=l(pl,"A",{id:!0,class:!0,href:!0});var Ds=r(Q);Ut=l(Ds,"SPAN",{});var Is=r(Ut);m(Te.$$.fragment,Is),Is.forEach(t),Ds.forEach(t),dr=u(pl),kt=l(pl,"SPAN",{});var Ns=r(kt);ur=i(Ns,"\u{1F680} Using the Default Configuration"),Ns.forEach(t),pl.forEach(t),xa=u(o),rt=l(o,"P",{});var Gs=r(rt);hr=i(Gs,`By default, Label Studio is installed in Spaces with a configuration that uses
local storage for the application database to store configuration, account
credentials, and project information. Labeling tasks and data items are also held
in local storage.`),Gs.forEach(t),Ba=u(o),m(V.$$.fragment,o),Ha=u(o),X=l(o,"P",{});var El=r(X);fr=i(El,`After launching Label Studio, you will be presented with the standard login
screen. You can start by creating a new account using your email address and
logging in with your new credentials. Periodically after logging in, Label
Studio will warn you that the storage is ephemeral and data could be
lost if your Space is restarted. You will also be preset with a prompt from
Heidi, the helpful Label Studio mascot, to create a new project to start
labeling your data. To get started, check out the Label Studio `),Ce=l(El,"A",{href:!0,rel:!0});var Us=r(Ce);pr=i(Us,`\u201CZero to One\u201D
tutorial`),Us.forEach(t),Er=i(El,`
with a guide on how to build an annotation interface for sentiment analysis.`),El.forEach(t),Ma=u(o),H=l(o,"H2",{class:!0});var _l=r(H);ee=l(_l,"A",{id:!0,class:!0,href:!0});var ks=r(ee);Yt=l(ks,"SPAN",{});var Ys=r(Yt);m(Le.$$.fragment,Ys),Ys.forEach(t),ks.forEach(t),_r=u(_l),xt=l(_l,"SPAN",{});var xs=r(xt);vr=i(xs,"\u{1F6E0}\uFE0F Configuring a Production-Ready Instance of Label Studio"),xs.forEach(t),_l.forEach(t),Ka=u(o),nt=l(o,"P",{});var Bs=r(nt);Sr=i(Bs,`To make your Space production-ready, you will need to make three configuration
changes:`),Bs.forEach(t),za=u(o),N=l(o,"UL",{});var bt=r(N);Bt=l(bt,"LI",{});var Hs=r(Bt);Ht=l(Hs,"P",{});var Ms=r(Ht);gr=i(Ms,"Disable the unrestricted creation of new accounts."),Ms.forEach(t),Hs.forEach(t),br=u(bt),Mt=l(bt,"LI",{});var Ks=r(Mt);Kt=l(Ks,"P",{});var zs=r(Kt);yr=i(zs,"Enable persistence by attaching an external database."),zs.forEach(t),Ks.forEach(t),wr=u(bt),zt=l(bt,"LI",{});var js=r(zt);jt=l(js,"P",{});var Ws=r(jt);mr=i(Ws,"Attach cloud storage for labeling tasks."),Ws.forEach(t),js.forEach(t),bt.forEach(t),ja=u(o),M=l(o,"H3",{class:!0});var vl=r(M);te=l(vl,"A",{id:!0,class:!0,href:!0});var Fs=r(te);Wt=l(Fs,"SPAN",{});var Zs=r(Wt);m(Re.$$.fragment,Zs),Zs.forEach(t),Fs.forEach(t),Ar=u(vl),Ft=l(vl,"SPAN",{});var qs=r(Ft);Or=i(qs,"Disable Unrestricted Creation of New Accounts"),qs.forEach(t),vl.forEach(t),Wa=u(o),G=l(o,"P",{});var yt=r(G);Pr=i(yt,`The default configuration on Label Studio allows for the unrestricted creation
of new accounts for anyone who has the URL for your application. You can
`),$e=l(yt,"A",{href:!0,rel:!0});var Js=r($e);Tr=i(Js,"restrict signups"),Js.forEach(t),Cr=i(yt,`
by adding the following configuration secrets to your Space `),Zt=l(yt,"STRONG",{});var Qs=r(Zt);Lr=i(Qs,"Settings"),Qs.forEach(t),Rr=i(yt,"."),yt.forEach(t),Fa=u(o),U=l(o,"UL",{});var wt=r(U);qt=l(wt,"LI",{});var Vs=r(qt);oe=l(Vs,"P",{});var ma=r(oe);Jt=l(ma,"CODE",{});var Xs=r(Jt);$r=i(Xs,"LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK"),Xs.forEach(t),Dr=i(ma,": Setting this value to "),Qt=l(ma,"CODE",{});var ec=r(Qt);Ir=i(ec,"true"),ec.forEach(t),Nr=i(ma,` will
disable unrestricted account creation.`),ma.forEach(t),Vs.forEach(t),Gr=u(wt),Vt=l(wt,"LI",{});var tc=r(Vt);it=l(tc,"P",{});var es=r(it);Xt=l(es,"CODE",{});var oc=r(Xt);Ur=i(oc,"LABEL_STUDIO_USERNAME"),oc.forEach(t),kr=i(es,`: This is the username of the account that you will
use as the first user in your Label Studio Space. It should be a valid email
address.`),es.forEach(t),tc.forEach(t),Yr=u(wt),eo=l(wt,"LI",{});var ac=r(eo);st=l(ac,"P",{});var ts=r(st);to=l(ts,"CODE",{});var lc=r(to);xr=i(lc,"LABEL_STUDIO_PASSWORD"),lc.forEach(t),Br=i(ts,`: The password that will be associated with the first
user account.`),ts.forEach(t),ac.forEach(t),wt.forEach(t),Za=u(o),ae=l(o,"P",{});var Sl=r(ae);Hr=i(Sl,`Restart the Space to apply these settings. The ability to create new accounts
from the login screen will be disabled. To create new accounts, you will need
to invite new users in the `),oo=l(Sl,"CODE",{});var rc=r(oo);Mr=i(rc,"Organization"),rc.forEach(t),Kr=i(Sl,` settings in the Label Studio
application.`),Sl.forEach(t),qa=u(o),K=l(o,"H3",{class:!0});var gl=r(K);le=l(gl,"A",{id:!0,class:!0,href:!0});var nc=r(le);ao=l(nc,"SPAN",{});var ic=r(ao);m(De.$$.fragment,ic),ic.forEach(t),nc.forEach(t),zr=u(gl),lo=l(gl,"SPAN",{});var sc=r(lo);jr=i(sc,"Enable Configuration Persistence"),sc.forEach(t),gl.forEach(t),Ja=u(o),re=l(o,"P",{});var bl=r(re);Wr=i(bl,`By default, this Space stores all project configuration and data annotations in
local storage with SQLite. If the Space is reset, all configuration and
annotation data in the Space will be lost. You can enable configuration
persistence by `),Ie=l(bl,"A",{href:!0,rel:!0});var cc=r(Ie);Fr=i(cc,`connecting an external Postgres database to your
space`),cc.forEach(t),Zr=i(bl,`,
guaranteeing that all project and annotation settings are preserved.`),bl.forEach(t),Qa=u(o),ct=l(o,"P",{});var dc=r(ct);qr=i(dc,`Set the following secret variables to match your own hosted instance of
Postgres. We strongly recommend setting these as secrets to prevent leaking
information about your database service to the public in your spaces
definition.`),dc.forEach(t),Va=u(o),f=l(o,"UL",{});var g=r(f);ro=l(g,"LI",{});var uc=r(ro);ne=l(uc,"P",{});var Aa=r(ne);no=l(Aa,"CODE",{});var hc=r(no);Jr=i(hc,"DJANGO_DB"),hc.forEach(t),Qr=i(Aa,": Set this to "),io=l(Aa,"CODE",{});var fc=r(io);Vr=i(fc,"default"),fc.forEach(t),Xr=i(Aa,"."),Aa.forEach(t),uc.forEach(t),en=u(g),so=l(g,"LI",{});var pc=r(so);dt=l(pc,"P",{});var os=r(dt);co=l(os,"CODE",{});var Ec=r(co);tn=i(Ec,"POSTGRE_NAME"),Ec.forEach(t),on=i(os,": Set this to the name of the Postgres database."),os.forEach(t),pc.forEach(t),an=u(g),uo=l(g,"LI",{});var _c=r(uo);ut=l(_c,"P",{});var as=r(ut);ho=l(as,"CODE",{});var vc=r(ho);ln=i(vc,"POSTGRE_USER"),vc.forEach(t),rn=i(as,": Set this to the Postgres username."),as.forEach(t),_c.forEach(t),nn=u(g),fo=l(g,"LI",{});var Sc=r(fo);ht=l(Sc,"P",{});var ls=r(ht);po=l(ls,"CODE",{});var gc=r(po);sn=i(gc,"POSTGRE_PASSWORD"),gc.forEach(t),cn=i(ls,": Set this to the password for your Postgres user."),ls.forEach(t),Sc.forEach(t),dn=u(g),Eo=l(g,"LI",{});var bc=r(Eo);ft=l(bc,"P",{});var rs=r(ft);_o=l(rs,"CODE",{});var yc=r(_o);un=i(yc,"POSTGRE_HOST"),yc.forEach(t),hn=i(rs,`: Set this to the host that your Postgres database is running
on.`),rs.forEach(t),bc.forEach(t),fn=u(g),vo=l(g,"LI",{});var wc=r(vo);pt=l(wc,"P",{});var ns=r(pt);So=l(ns,"CODE",{});var mc=r(So);pn=i(mc,"POSTGRE_PORT"),mc.forEach(t),En=i(ns,`: Set this to the port that your Pogtgres database is running
on.`),ns.forEach(t),wc.forEach(t),_n=u(g),go=l(g,"LI",{});var Ac=r(go);ie=l(Ac,"P",{});var Oa=r(ie);bo=l(Oa,"CODE",{});var Oc=r(bo);vn=i(Oc,"STORAGE_PERSISTENCE"),Oc.forEach(t),Sn=i(Oa,": Set this to "),yo=l(Oa,"CODE",{});var Pc=r(yo);gn=i(Pc,"1"),Pc.forEach(t),bn=i(Oa,` to remove the warning about ephemeral
storage.`),Oa.forEach(t),Ac.forEach(t),g.forEach(t),Xa=u(o),Et=l(o,"P",{});var Tc=r(Et);yn=i(Tc,`Restart the Space to apply these settings. Information about users, projects,
and annotations will be stored in the database, and will be reloaded by Label
Studio if the space is restarted or reset.`),Tc.forEach(t),el=u(o),z=l(o,"H3",{class:!0});var yl=r(z);se=l(yl,"A",{id:!0,class:!0,href:!0});var Cc=r(se);wo=l(Cc,"SPAN",{});var Lc=r(wo);m(Ne.$$.fragment,Lc),Lc.forEach(t),Cc.forEach(t),wn=u(yl),mo=l(yl,"SPAN",{});var Rc=r(mo);mn=i(Rc,"Enable Cloud Storage"),Rc.forEach(t),yl.forEach(t),tl=u(o),ce=l(o,"P",{});var wl=r(ce);An=i(wl,`By default, the only data storage enabled for this Space is local. In the case
of a Space reset, all data will be lost. To enable permanent storage, you must
enable a `),Ge=l(wl,"A",{href:!0,rel:!0});var $c=r(Ge);On=i($c,"cloud storage connector"),$c.forEach(t),Pn=i(wl,`.
Choose the appropriate cloud connector and configure the secrets for it.`),wl.forEach(t),ol=u(o),j=l(o,"H4",{class:!0});var ml=r(j);de=l(ml,"A",{id:!0,class:!0,href:!0});var Dc=r(de);Ao=l(Dc,"SPAN",{});var Ic=r(Ao);m(Ue.$$.fragment,Ic),Ic.forEach(t),Dc.forEach(t),Tn=u(ml),Oo=l(ml,"SPAN",{});var Nc=r(Oo);Cn=i(Nc,"Amazon S3"),Nc.forEach(t),ml.forEach(t),al=u(o),p=l(o,"UL",{});var b=r(p);Po=l(b,"LI",{});var Gc=r(Po);ue=l(Gc,"P",{});var Pa=r(ue);To=l(Pa,"CODE",{});var Uc=r(To);Ln=i(Uc,"STORAGE_TYPE"),Uc.forEach(t),Rn=i(Pa,": Set this to "),Co=l(Pa,"CODE",{});var kc=r(Co);$n=i(kc,"s3"),kc.forEach(t),Dn=i(Pa,"."),Pa.forEach(t),Gc.forEach(t),In=u(b),Lo=l(b,"LI",{});var Yc=r(Lo);ke=l(Yc,"P",{});var Al=r(ke);Ro=l(Al,"CODE",{});var xc=r(Ro);Nn=i(xc,"STORAGE_AWS_ACCESS_KEY_ID"),xc.forEach(t),Gn=i(Al,": "),$o=l(Al,"CODE",{});var Bc=r($o);Un=i(Bc,"<YOUR_ACCESS_KEY_ID>"),Bc.forEach(t),Al.forEach(t),Yc.forEach(t),kn=u(b),Do=l(b,"LI",{});var Hc=r(Do);Ye=l(Hc,"P",{});var Ol=r(Ye);Io=l(Ol,"CODE",{});var Mc=r(Io);Yn=i(Mc,"STORAGE_AWS_SECRET_ACCESS_KEY"),Mc.forEach(t),xn=i(Ol,": "),No=l(Ol,"CODE",{});var Kc=r(No);Bn=i(Kc,"<YOUR_SECRET_ACCESS_KEY>"),Kc.forEach(t),Ol.forEach(t),Hc.forEach(t),Hn=u(b),Go=l(b,"LI",{});var zc=r(Go);xe=l(zc,"P",{});var Pl=r(xe);Uo=l(Pl,"CODE",{});var jc=r(Uo);Mn=i(jc,"STORAGE_AWS_BUCKET_NAME"),jc.forEach(t),Kn=i(Pl,": "),ko=l(Pl,"CODE",{});var Wc=r(ko);zn=i(Wc,"<YOUR_BUCKET_NAME>"),Wc.forEach(t),Pl.forEach(t),zc.forEach(t),jn=u(b),Yo=l(b,"LI",{});var Fc=r(Yo);Be=l(Fc,"P",{});var Tl=r(Be);xo=l(Tl,"CODE",{});var Zc=r(xo);Wn=i(Zc,"STORAGE_AWS_REGION_NAME"),Zc.forEach(t),Fn=i(Tl,": "),Bo=l(Tl,"CODE",{});var qc=r(Bo);Zn=i(qc,"<YOUR_BUCKET_REGION>"),qc.forEach(t),Tl.forEach(t),Fc.forEach(t),qn=u(b),Ho=l(b,"LI",{});var Jc=r(Ho);_t=l(Jc,"P",{});var is=r(_t);Mo=l(is,"CODE",{});var Qc=r(Mo);Jn=i(Qc,"STORAGE_AWS_FOLDER"),Qc.forEach(t),Qn=i(is,": Set this to an empty string."),is.forEach(t),Jc.forEach(t),b.forEach(t),ll=u(o),W=l(o,"H4",{class:!0});var Cl=r(W);he=l(Cl,"A",{id:!0,class:!0,href:!0});var Vc=r(he);Ko=l(Vc,"SPAN",{});var Xc=r(Ko);m(He.$$.fragment,Xc),Xc.forEach(t),Vc.forEach(t),Vn=u(Cl),zo=l(Cl,"SPAN",{});var ed=r(zo);Xn=i(ed,"Google Cloud Storage"),ed.forEach(t),Cl.forEach(t),rl=u(o),v=l(o,"UL",{});var k=r(v);jo=l(k,"LI",{});var td=r(jo);fe=l(td,"P",{});var Ta=r(fe);Wo=l(Ta,"CODE",{});var od=r(Wo);ei=i(od,"STORAGE_TYPE"),od.forEach(t),ti=i(Ta,": Set this to "),Fo=l(Ta,"CODE",{});var ad=r(Fo);oi=i(ad,"gcs"),ad.forEach(t),ai=i(Ta,"."),Ta.forEach(t),td.forEach(t),li=u(k),Zo=l(k,"LI",{});var ld=r(Zo);Me=l(ld,"P",{});var Ll=r(Me);qo=l(Ll,"CODE",{});var rd=r(qo);ri=i(rd,"STORAGE_GCS_BUCKET_NAME"),rd.forEach(t),ni=i(Ll,": "),Jo=l(Ll,"CODE",{});var nd=r(Jo);ii=i(nd,"<YOUR_BUCKET_NAME>"),nd.forEach(t),Ll.forEach(t),ld.forEach(t),si=u(k),Qo=l(k,"LI",{});var id=r(Qo);Ke=l(id,"P",{});var Rl=r(Ke);Vo=l(Rl,"CODE",{});var sd=r(Vo);ci=i(sd,"STORAGE_GCS_PROJECT_ID"),sd.forEach(t),di=i(Rl,": "),Xo=l(Rl,"CODE",{});var cd=r(Xo);ui=i(cd,"<YOUR_PROJECT_ID>"),cd.forEach(t),Rl.forEach(t),id.forEach(t),hi=u(k),ea=l(k,"LI",{});var dd=r(ea);vt=l(dd,"P",{});var ss=r(vt);ta=l(ss,"CODE",{});var ud=r(ta);fi=i(ud,"STORAGE_GCS_FOLDER"),ud.forEach(t),pi=i(ss,": Set this to an empty string."),ss.forEach(t),dd.forEach(t),Ei=u(k),oa=l(k,"LI",{});var hd=r(oa);pe=l(hd,"P",{});var Ca=r(pe);aa=l(Ca,"CODE",{});var fd=r(aa);_i=i(fd,"GOOGLE_APPLICATION_CREDENTIALS"),fd.forEach(t),vi=i(Ca,": Set this to "),la=l(Ca,"CODE",{});var pd=r(la);Si=i(pd,"/opt/heartex/secrets/key.json"),pd.forEach(t),gi=i(Ca,"."),Ca.forEach(t),hd.forEach(t),k.forEach(t),nl=u(o),F=l(o,"H4",{class:!0});var $l=r(F);Ee=l($l,"A",{id:!0,class:!0,href:!0});var Ed=r(Ee);ra=l(Ed,"SPAN",{});var _d=r(ra);m(ze.$$.fragment,_d),_d.forEach(t),Ed.forEach(t),bi=u($l),na=l($l,"SPAN",{});var vd=r(na);yi=i(vd,"Azure Blob Storage"),vd.forEach(t),$l.forEach(t),il=u(o),S=l(o,"UL",{});var Y=r(S);ia=l(Y,"LI",{});var Sd=r(ia);_e=l(Sd,"P",{});var La=r(_e);sa=l(La,"CODE",{});var gd=r(sa);wi=i(gd,"STORAGE_TYPE"),gd.forEach(t),mi=i(La,": Set this to "),ca=l(La,"CODE",{});var bd=r(ca);Ai=i(bd,"azure"),bd.forEach(t),Oi=i(La,"."),La.forEach(t),Sd.forEach(t),Pi=u(Y),da=l(Y,"LI",{});var yd=r(da);je=l(yd,"P",{});var Dl=r(je);ua=l(Dl,"CODE",{});var wd=r(ua);Ti=i(wd,"STORAGE_AZURE_ACCOUNT_NAME"),wd.forEach(t),Ci=i(Dl,": "),ha=l(Dl,"CODE",{});var md=r(ha);Li=i(md,"<YOUR_STORAGE_ACCOUNT>"),md.forEach(t),Dl.forEach(t),yd.forEach(t),Ri=u(Y),fa=l(Y,"LI",{});var Ad=r(fa);We=l(Ad,"P",{});var Il=r(We);pa=l(Il,"CODE",{});var Od=r(pa);$i=i(Od,"STORAGE_AZURE_ACCOUNT_KEY"),Od.forEach(t),Di=i(Il,": "),Ea=l(Il,"CODE",{});var Pd=r(Ea);Ii=i(Pd,"<YOUR_STORAGE_KEY>"),Pd.forEach(t),Il.forEach(t),Ad.forEach(t),Ni=u(Y),_a=l(Y,"LI",{});var Td=r(_a);Fe=l(Td,"P",{});var Nl=r(Fe);va=l(Nl,"CODE",{});var Cd=r(va);Gi=i(Cd,"STORAGE_AZURE_CONTAINER_NAME"),Cd.forEach(t),Ui=i(Nl,": "),Sa=l(Nl,"CODE",{});var Ld=r(Sa);ki=i(Ld,"<YOUR_CONTAINER_NAME>"),Ld.forEach(t),Nl.forEach(t),Td.forEach(t),Yi=u(Y),ga=l(Y,"LI",{});var Rd=r(ga);St=l(Rd,"P",{});var cs=r(St);ba=l(cs,"CODE",{});var $d=r(ba);xi=i($d,"STORAGE_AZURE_FOLDER"),$d.forEach(t),Bi=i(cs,": Set this to an empty string."),cs.forEach(t),Rd.forEach(t),Y.forEach(t),sl=u(o),Z=l(o,"H2",{class:!0});var Gl=r(Z);ve=l(Gl,"A",{id:!0,class:!0,href:!0});var Dd=r(ve);ya=l(Dd,"SPAN",{});var Id=r(ya);m(Ze.$$.fragment,Id),Id.forEach(t),Dd.forEach(t),Hi=u(Gl),wa=l(Gl,"SPAN",{});var Nd=r(wa);Mi=i(Nd,"\u{1F917} Next Steps, Feedback, and Support"),Nd.forEach(t),Gl.forEach(t),cl=u(o),E=l(o,"P",{});var y=r(E);Ki=i(y,"To get started with Label Studio, check out the Label Studio "),qe=l(y,"A",{href:!0,rel:!0});var Gd=r(qe);zi=i(Gd,`\u201CZero to One\u201D
tutorial`),Gd.forEach(t),ji=i(y,`,
which walks you through an example sentiment analysis annotation project. You
can find a full set of resources about Label Studio and the Label Studio
community on at the `),Je=l(y,"A",{href:!0,rel:!0});var Ud=r(Je);Wi=i(Ud,"Label Studio Home Page"),Ud.forEach(t),Fi=i(y,`. This
includes `),Qe=l(y,"A",{href:!0,rel:!0});var kd=r(Qe);Zi=i(kd,"full documentation"),kd.forEach(t),qi=i(y,", an "),Ve=l(y,"A",{href:!0,rel:!0});var Yd=r(Ve);Ji=i(Yd,`interactive
playground`),Yd.forEach(t),Qi=i(y,` for trying out different
annotation interfaces, and links to join the `),Xe=l(y,"A",{href:!0,rel:!0});var xd=r(Xe);Vi=i(xd,`Label Studio Slack
Community`),xd.forEach(t),Xi=i(y,"."),y.forEach(t),this.h()},h(){c(_,"name","hf:doc:metadata"),c(_,"content",JSON.stringify(qd)),c(q,"id","label-studio-on-spaces"),c(q,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(q,"href","#label-studio-on-spaces"),c(C,"class","relative group"),c(be,"href","https://labelstud.io"),c(be,"rel","nofollow"),c(ye,"href","https://github.com/heartexlabs/label-studio"),c(ye,"rel","nofollow"),c(we,"href","https://labelstud.io/guide/ml.html"),c(we,"rel","nofollow"),c(J,"id","deploy-label-studio-on-spaces"),c(J,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(J,"href","#deploy-label-studio-on-spaces"),c(x,"class","relative group"),zd(Tt.src,ds="https://huggingface.co/datasets/huggingface/badges/raw/main/deploy-to-spaces-lg.svg")||c(Tt,"src",ds),c(Ae,"href","https://huggingface.co/new-space?template=LabelStudio/LabelStudio"),c(Q,"id","using-the-default-configuration"),c(Q,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(Q,"href","#using-the-default-configuration"),c(B,"class","relative group"),c(Ce,"href","https://labelstud.io/blog/introduction-to-label-studio-in-hugging-face-spaces/"),c(Ce,"rel","nofollow"),c(ee,"id","configuring-a-productionready-instance-of-label-studio"),c(ee,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(ee,"href","#configuring-a-productionready-instance-of-label-studio"),c(H,"class","relative group"),c(te,"id","disable-unrestricted-creation-of-new-accounts"),c(te,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(te,"href","#disable-unrestricted-creation-of-new-accounts"),c(M,"class","relative group"),c($e,"href","https://labelstud.io/guide/signup.html#Restrict-signup-for-local-deployments"),c($e,"rel","nofollow"),c(le,"id","enable-configuration-persistence"),c(le,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(le,"href","#enable-configuration-persistence"),c(K,"class","relative group"),c(Ie,"href","https://labelstud.io/guide/storedata.html#PostgreSQL-database"),c(Ie,"rel","nofollow"),c(se,"id","enable-cloud-storage"),c(se,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(se,"href","#enable-cloud-storage"),c(z,"class","relative group"),c(Ge,"href","https://labelstud.io/guide/storage.html"),c(Ge,"rel","nofollow"),c(de,"id","amazon-s3"),c(de,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(de,"href","#amazon-s3"),c(j,"class","relative group"),c(he,"id","google-cloud-storage"),c(he,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(he,"href","#google-cloud-storage"),c(W,"class","relative group"),c(Ee,"id","azure-blob-storage"),c(Ee,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(Ee,"href","#azure-blob-storage"),c(F,"class","relative group"),c(ve,"id","next-steps-feedback-and-support"),c(ve,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(ve,"href","#next-steps-feedback-and-support"),c(Z,"class","relative group"),c(qe,"href","https://labelstud.io/blog/introduction-to-label-studio-in-hugging-face-spaces/"),c(qe,"rel","nofollow"),c(Je,"href","https://labelstud.io"),c(Je,"rel","nofollow"),c(Qe,"href","https://labelstud.io/guide/"),c(Qe,"rel","nofollow"),c(Ve,"href","https://labelstud.io/playground/"),c(Ve,"rel","nofollow"),c(Xe,"href","https://slack.labelstudio.heartex.com/?source=spaces"),c(Xe,"rel","nofollow")},m(o,s){e(document.head,_),h(o,D,s),h(o,C,s),e(C,q),e(q,mt),A(ge,mt,null),e(C,Ul),e(C,At),e(At,kl),h(o,$a,s),h(o,L,s),e(L,be),e(be,Yl),e(L,xl),e(L,ye),e(ye,Bl),e(L,Hl),e(L,we),e(we,Ml),e(L,Kl),h(o,Da,s),h(o,ot,s),e(ot,zl),h(o,Ia,s),h(o,x,s),e(x,J),e(J,Ot),A(me,Ot,null),e(x,jl),e(x,Pt),e(Pt,Wl),h(o,Na,s),h(o,at,s),e(at,Fl),h(o,Ga,s),h(o,Ae,s),e(Ae,Tt),h(o,Ua,s),h(o,lt,s),e(lt,Zl),h(o,ka,s),h(o,I,s),e(I,Ct),e(Ct,Oe),e(Oe,ql),e(Oe,Lt),e(Lt,Jl),e(Oe,Ql),e(I,Vl),e(I,Rt),e(Rt,Pe),e(Pe,Xl),e(Pe,$t),e($t,er),e(Pe,tr),e(I,or),e(I,Dt),e(Dt,R),e(R,ar),e(R,It),e(It,lr),e(R,rr),e(R,Nt),e(Nt,nr),e(R,ir),e(R,Gt),e(Gt,sr),e(R,cr),h(o,Ya,s),h(o,B,s),e(B,Q),e(Q,Ut),A(Te,Ut,null),e(B,dr),e(B,kt),e(kt,ur),h(o,xa,s),h(o,rt,s),e(rt,hr),h(o,Ba,s),A(V,o,s),h(o,Ha,s),h(o,X,s),e(X,fr),e(X,Ce),e(Ce,pr),e(X,Er),h(o,Ma,s),h(o,H,s),e(H,ee),e(ee,Yt),A(Le,Yt,null),e(H,_r),e(H,xt),e(xt,vr),h(o,Ka,s),h(o,nt,s),e(nt,Sr),h(o,za,s),h(o,N,s),e(N,Bt),e(Bt,Ht),e(Ht,gr),e(N,br),e(N,Mt),e(Mt,Kt),e(Kt,yr),e(N,wr),e(N,zt),e(zt,jt),e(jt,mr),h(o,ja,s),h(o,M,s),e(M,te),e(te,Wt),A(Re,Wt,null),e(M,Ar),e(M,Ft),e(Ft,Or),h(o,Wa,s),h(o,G,s),e(G,Pr),e(G,$e),e($e,Tr),e(G,Cr),e(G,Zt),e(Zt,Lr),e(G,Rr),h(o,Fa,s),h(o,U,s),e(U,qt),e(qt,oe),e(oe,Jt),e(Jt,$r),e(oe,Dr),e(oe,Qt),e(Qt,Ir),e(oe,Nr),e(U,Gr),e(U,Vt),e(Vt,it),e(it,Xt),e(Xt,Ur),e(it,kr),e(U,Yr),e(U,eo),e(eo,st),e(st,to),e(to,xr),e(st,Br),h(o,Za,s),h(o,ae,s),e(ae,Hr),e(ae,oo),e(oo,Mr),e(ae,Kr),h(o,qa,s),h(o,K,s),e(K,le),e(le,ao),A(De,ao,null),e(K,zr),e(K,lo),e(lo,jr),h(o,Ja,s),h(o,re,s),e(re,Wr),e(re,Ie),e(Ie,Fr),e(re,Zr),h(o,Qa,s),h(o,ct,s),e(ct,qr),h(o,Va,s),h(o,f,s),e(f,ro),e(ro,ne),e(ne,no),e(no,Jr),e(ne,Qr),e(ne,io),e(io,Vr),e(ne,Xr),e(f,en),e(f,so),e(so,dt),e(dt,co),e(co,tn),e(dt,on),e(f,an),e(f,uo),e(uo,ut),e(ut,ho),e(ho,ln),e(ut,rn),e(f,nn),e(f,fo),e(fo,ht),e(ht,po),e(po,sn),e(ht,cn),e(f,dn),e(f,Eo),e(Eo,ft),e(ft,_o),e(_o,un),e(ft,hn),e(f,fn),e(f,vo),e(vo,pt),e(pt,So),e(So,pn),e(pt,En),e(f,_n),e(f,go),e(go,ie),e(ie,bo),e(bo,vn),e(ie,Sn),e(ie,yo),e(yo,gn),e(ie,bn),h(o,Xa,s),h(o,Et,s),e(Et,yn),h(o,el,s),h(o,z,s),e(z,se),e(se,wo),A(Ne,wo,null),e(z,wn),e(z,mo),e(mo,mn),h(o,tl,s),h(o,ce,s),e(ce,An),e(ce,Ge),e(Ge,On),e(ce,Pn),h(o,ol,s),h(o,j,s),e(j,de),e(de,Ao),A(Ue,Ao,null),e(j,Tn),e(j,Oo),e(Oo,Cn),h(o,al,s),h(o,p,s),e(p,Po),e(Po,ue),e(ue,To),e(To,Ln),e(ue,Rn),e(ue,Co),e(Co,$n),e(ue,Dn),e(p,In),e(p,Lo),e(Lo,ke),e(ke,Ro),e(Ro,Nn),e(ke,Gn),e(ke,$o),e($o,Un),e(p,kn),e(p,Do),e(Do,Ye),e(Ye,Io),e(Io,Yn),e(Ye,xn),e(Ye,No),e(No,Bn),e(p,Hn),e(p,Go),e(Go,xe),e(xe,Uo),e(Uo,Mn),e(xe,Kn),e(xe,ko),e(ko,zn),e(p,jn),e(p,Yo),e(Yo,Be),e(Be,xo),e(xo,Wn),e(Be,Fn),e(Be,Bo),e(Bo,Zn),e(p,qn),e(p,Ho),e(Ho,_t),e(_t,Mo),e(Mo,Jn),e(_t,Qn),h(o,ll,s),h(o,W,s),e(W,he),e(he,Ko),A(He,Ko,null),e(W,Vn),e(W,zo),e(zo,Xn),h(o,rl,s),h(o,v,s),e(v,jo),e(jo,fe),e(fe,Wo),e(Wo,ei),e(fe,ti),e(fe,Fo),e(Fo,oi),e(fe,ai),e(v,li),e(v,Zo),e(Zo,Me),e(Me,qo),e(qo,ri),e(Me,ni),e(Me,Jo),e(Jo,ii),e(v,si),e(v,Qo),e(Qo,Ke),e(Ke,Vo),e(Vo,ci),e(Ke,di),e(Ke,Xo),e(Xo,ui),e(v,hi),e(v,ea),e(ea,vt),e(vt,ta),e(ta,fi),e(vt,pi),e(v,Ei),e(v,oa),e(oa,pe),e(pe,aa),e(aa,_i),e(pe,vi),e(pe,la),e(la,Si),e(pe,gi),h(o,nl,s),h(o,F,s),e(F,Ee),e(Ee,ra),A(ze,ra,null),e(F,bi),e(F,na),e(na,yi),h(o,il,s),h(o,S,s),e(S,ia),e(ia,_e),e(_e,sa),e(sa,wi),e(_e,mi),e(_e,ca),e(ca,Ai),e(_e,Oi),e(S,Pi),e(S,da),e(da,je),e(je,ua),e(ua,Ti),e(je,Ci),e(je,ha),e(ha,Li),e(S,Ri),e(S,fa),e(fa,We),e(We,pa),e(pa,$i),e(We,Di),e(We,Ea),e(Ea,Ii),e(S,Ni),e(S,_a),e(_a,Fe),e(Fe,va),e(va,Gi),e(Fe,Ui),e(Fe,Sa),e(Sa,ki),e(S,Yi),e(S,ga),e(ga,St),e(St,ba),e(ba,xi),e(St,Bi),h(o,sl,s),h(o,Z,s),e(Z,ve),e(ve,ya),A(Ze,ya,null),e(Z,Hi),e(Z,wa),e(wa,Mi),h(o,cl,s),h(o,E,s),e(E,Ki),e(E,qe),e(qe,zi),e(E,ji),e(E,Je),e(Je,Wi),e(E,Fi),e(E,Qe),e(Qe,Zi),e(E,qi),e(E,Ve),e(Ve,Ji),e(E,Qi),e(E,Xe),e(Xe,Vi),e(E,Xi),dl=!0},p(o,[s]){const et={};s&2&&(et.$$scope={dirty:s,ctx:o}),V.$set(et)},i(o){dl||(O(ge.$$.fragment,o),O(me.$$.fragment,o),O(Te.$$.fragment,o),O(V.$$.fragment,o),O(Le.$$.fragment,o),O(Re.$$.fragment,o),O(De.$$.fragment,o),O(Ne.$$.fragment,o),O(Ue.$$.fragment,o),O(He.$$.fragment,o),O(ze.$$.fragment,o),O(Ze.$$.fragment,o),dl=!0)},o(o){P(ge.$$.fragment,o),P(me.$$.fragment,o),P(Te.$$.fragment,o),P(V.$$.fragment,o),P(Le.$$.fragment,o),P(Re.$$.fragment,o),P(De.$$.fragment,o),P(Ne.$$.fragment,o),P(Ue.$$.fragment,o),P(He.$$.fragment,o),P(ze.$$.fragment,o),P(Ze.$$.fragment,o),dl=!1},d(o){t(_),o&&t(D),o&&t(C),T(ge),o&&t($a),o&&t(L),o&&t(Da),o&&t(ot),o&&t(Ia),o&&t(x),T(me),o&&t(Na),o&&t(at),o&&t(Ga),o&&t(Ae),o&&t(Ua),o&&t(lt),o&&t(ka),o&&t(I),o&&t(Ya),o&&t(B),T(Te),o&&t(xa),o&&t(rt),o&&t(Ba),T(V,o),o&&t(Ha),o&&t(X),o&&t(Ma),o&&t(H),T(Le),o&&t(Ka),o&&t(nt),o&&t(za),o&&t(N),o&&t(ja),o&&t(M),T(Re),o&&t(Wa),o&&t(G),o&&t(Fa),o&&t(U),o&&t(Za),o&&t(ae),o&&t(qa),o&&t(K),T(De),o&&t(Ja),o&&t(re),o&&t(Qa),o&&t(ct),o&&t(Va),o&&t(f),o&&t(Xa),o&&t(Et),o&&t(el),o&&t(z),T(Ne),o&&t(tl),o&&t(ce),o&&t(ol),o&&t(j),T(Ue),o&&t(al),o&&t(p),o&&t(ll),o&&t(W),T(He),o&&t(rl),o&&t(v),o&&t(nl),o&&t(F),T(ze),o&&t(il),o&&t(S),o&&t(sl),o&&t(Z),T(Ze),o&&t(cl),o&&t(E)}}}const qd={local:"label-studio-on-spaces",sections:[{local:"deploy-label-studio-on-spaces",title:"\u26A1\uFE0F Deploy Label Studio on Spaces"},{local:"using-the-default-configuration",title:"\u{1F680} Using the Default Configuration"},{local:"configuring-a-productionready-instance-of-label-studio",sections:[{local:"disable-unrestricted-creation-of-new-accounts",title:"Disable Unrestricted Creation of New Accounts"},{local:"enable-configuration-persistence",title:"Enable Configuration Persistence"},{local:"enable-cloud-storage",sections:[{local:"amazon-s3",title:"Amazon S3"},{local:"google-cloud-storage",title:"Google Cloud Storage"},{local:"azure-blob-storage",title:"Azure Blob Storage"}],title:"Enable Cloud Storage"}],title:"\u{1F6E0}\uFE0F Configuring a Production-Ready Instance of Label Studio"},{local:"next-steps-feedback-and-support",title:"\u{1F917} Next Steps, Feedback, and Support"}],title:"\u{1F7E7} Label Studio on Spaces"};function Jd(Ra){return jd(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class eu extends Bd{constructor(_){super();Hd(this,_,Jd,Zd,Md,{})}}export{eu as default,qd as metadata};
