oscloud-docs/site/apps/surfer/index.html
2024-11-03 18:13:30 +01:00

1885 lines
43 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Oscloud je váš osobní cloud a hosting webových aplikací.">
<link rel="canonical" href="https://docs.oscloud.cz/apps/surfer/">
<link rel="prev" href="../searxng/">
<link rel="next" href="../vaultwarden/">
<link rel="icon" href="../../img/favicon.ico">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
<title>Surfer - Oscloud Docs</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.8c3ca2c6.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
<link rel="stylesheet" href="../../styly/extra.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#surfer-app" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Oscloud Docs" class="md-header__button md-logo" aria-label="Oscloud Docs" data-md-component="logo">
<img src="../../img/logo.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Oscloud Docs
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Surfer
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m14.3 16-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zm-9.15 3.96h2.3L12 9z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="white" data-md-color-accent="light-blue" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="light-blue" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
</label>
</form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Oscloud Docs" class="md-nav__button md-logo" aria-label="Oscloud Docs" data-md-component="logo">
<img src="../../img/logo.png" alt="logo">
</a>
Oscloud Docs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." class="md-nav__link">
<span class="md-ellipsis">
Úvodní stránka
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-ellipsis">
Podpora a kontakty
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Podpora a kontakty
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../support/" class="md-nav__link">
<span class="md-ellipsis">
Podpora
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contact/" class="md-nav__link">
<span class="md-ellipsis">
Kontaktujte nás
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Znalostní báze
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Znalostní báze
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
App
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../certificates/" class="md-nav__link">
<span class="md-ellipsis">
Certifikáty
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../profile/" class="md-nav__link">
<span class="md-ellipsis">
Profil
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../security/" class="md-nav__link">
<span class="md-ellipsis">
Security
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../backups/" class="md-nav__link">
<span class="md-ellipsis">
Zálohy
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-ellipsis">
Aplikace
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Aplikace
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../bookstack.md" class="md-nav__link">
<span class="md-ellipsis">
BookStack
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../castopod.md" class="md-nav__link">
<span class="md-ellipsis">
Castopod
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../cryptpad/" class="md-nav__link">
<span class="md-ellipsis">
CryptPad
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../discourse.md" class="md-nav__link">
<span class="md-ellipsis">
Discourse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dokuwiki.md" class="md-nav__link">
<span class="md-ellipsis">
Dokuwiki
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../gitea.md" class="md-nav__link">
<span class="md-ellipsis">
Gitea
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../githubpages.md" class="md-nav__link">
<span class="md-ellipsis">
GitHub Pages
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../gogs.md" class="md-nav__link">
<span class="md-ellipsis">
Gogs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../hedgedoc/" class="md-nav__link">
<span class="md-ellipsis">
HedgeDoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../immich.md" class="md-nav__link">
<span class="md-ellipsis">
Immich
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../joplin-server/" class="md-nav__link">
<span class="md-ellipsis">
Joplin Server
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../lamp/" class="md-nav__link">
<span class="md-ellipsis">
LAMP
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../linkding.md" class="md-nav__link">
<span class="md-ellipsis">
Linkding
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../lychee.md" class="md-nav__link">
<span class="md-ellipsis">
Lychee
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mastodon/" class="md-nav__link">
<span class="md-ellipsis">
Mastodon
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../miniflux.md" class="md-nav__link">
<span class="md-ellipsis">
Miniflux
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mirotalk/" class="md-nav__link">
<span class="md-ellipsis">
MiroTalk
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nextcloud/" class="md-nav__link">
<span class="md-ellipsis">
Nextcloud
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../ntfy.md" class="md-nav__link">
<span class="md-ellipsis">
ntfy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../pairdrop/" class="md-nav__link">
<span class="md-ellipsis">
PairDrop
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../peertube.md" class="md-nav__link">
<span class="md-ellipsis">
Peertube
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../piwigo.md" class="md-nav__link">
<span class="md-ellipsis">
Piwigo
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../pixelfed.md" class="md-nav__link">
<span class="md-ellipsis">
Pixelfed
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../privatebin/" class="md-nav__link">
<span class="md-ellipsis">
PrivateBin
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../rallly.md" class="md-nav__link">
<span class="md-ellipsis">
Rallly
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../roundcube.md" class="md-nav__link">
<span class="md-ellipsis">
Roundcube
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../searxng/" class="md-nav__link">
<span class="md-ellipsis">
SearXNG
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Surfer
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Surfer
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#surfer-na-oscloud" class="md-nav__link">
<span class="md-ellipsis">
Surfer na OSCloud
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#1-pristup-k-surferu" class="md-nav__link">
<span class="md-ellipsis">
1. Přístup k Surferu
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#2-pristup-k-souborum" class="md-nav__link">
<span class="md-ellipsis">
2. Přístup k souborům
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#3-dalsi-moznosti-spravy-souboru" class="md-nav__link">
<span class="md-ellipsis">
3. Další možnosti správy souborů
</span>
</a>
<nav class="md-nav" aria-label="3. Další možnosti správy souborů">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#webove-rozhrani" class="md-nav__link">
<span class="md-ellipsis">
Webové rozhraní
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cli-nastroj" class="md-nav__link">
<span class="md-ellipsis">
CLI nástroj
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#webdav" class="md-nav__link">
<span class="md-ellipsis">
WebDAV
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#sftp" class="md-nav__link">
<span class="md-ellipsis">
SFTP
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#ovladani-pristupu" class="md-nav__link">
<span class="md-ellipsis">
Ovládání přístupu
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cicd-integrace" class="md-nav__link">
<span class="md-ellipsis">
CI/CD integrace
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../tinytinyrss.md" class="md-nav__link">
<span class="md-ellipsis">
TinyTinyRSS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../umami.md" class="md-nav__link">
<span class="md-ellipsis">
Umami
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../vaultwarden/" class="md-nav__link">
<span class="md-ellipsis">
Vaultwarden
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../vikunja.md" class="md-nav__link">
<span class="md-ellipsis">
Vikunja
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../wordpress-developer/" class="md-nav__link">
<span class="md-ellipsis">
WordPress (Developer)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../wordpress-managed/" class="md-nav__link">
<span class="md-ellipsis">
WordPress (Managed)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-ellipsis">
Ceny
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Ceny
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../podporte-nas.md" class="md-nav__link">
<span class="md-ellipsis">
Jak nás podpořit
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#surfer-na-oscloud" class="md-nav__link">
<span class="md-ellipsis">
Surfer na OSCloud
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#1-pristup-k-surferu" class="md-nav__link">
<span class="md-ellipsis">
1. Přístup k Surferu
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#2-pristup-k-souborum" class="md-nav__link">
<span class="md-ellipsis">
2. Přístup k souborům
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#3-dalsi-moznosti-spravy-souboru" class="md-nav__link">
<span class="md-ellipsis">
3. Další možnosti správy souborů
</span>
</a>
<nav class="md-nav" aria-label="3. Další možnosti správy souborů">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#webove-rozhrani" class="md-nav__link">
<span class="md-ellipsis">
Webové rozhraní
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cli-nastroj" class="md-nav__link">
<span class="md-ellipsis">
CLI nástroj
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#webdav" class="md-nav__link">
<span class="md-ellipsis">
WebDAV
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#sftp" class="md-nav__link">
<span class="md-ellipsis">
SFTP
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#ovladani-pristupu" class="md-nav__link">
<span class="md-ellipsis">
Ovládání přístupu
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cicd-integrace" class="md-nav__link">
<span class="md-ellipsis">
CI/CD integrace
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="surfer-app"><img src="/img/surfer-logo.png" width="25px"> Surfer App</h1>
<h3 id="surfer-na-oscloud">Surfer na OSCloud</h3>
<p>Surfer je aplikace pro snadnou správu souborů a hosting statických webových stránek na OSCloud. Je ideální pro rychlé nasazení webových projektů, dokumentací nebo jednoduchých webových aplikací.</p>
<h3 id="1-pristup-k-surferu">1. Přístup k Surferu</h3>
<p>Přihlašte se do administrace OSCloud a zvolte aplikaci Surfer z katalogu aplikací. Instalaci provádíme za zákazníka a aplikace bude po dokončení automaticky dostupná na subdoméně zákazníka, například <code>firmy.oscloud.cz</code>.</p>
<h3 id="2-pristup-k-souborum">2. Přístup k souborům</h3>
<p>Jakmile je aplikace Surfer nainstalovaná, získá zákazník přístup ke správě souborů prostřednictvím jednoduchého webového rozhraní. Toto rozhraní umožňuje nahrávat, stahovat, mazat a organizovat soubory na jeho subdoméně. Případné úpravy a asistenci s nahráváním prvních souborů zajišťujeme také my, aby zákazník nemusel mít technické znalosti k obsluze aplikace.</p>
<h3 id="3-dalsi-moznosti-spravy-souboru">3. Další možnosti správy souborů</h3>
<p>Existují 4 způsoby, jak spravovat soubory v aplikaci Surfer:</p>
<ul>
<li><a href="#webové-rozhraní">Webové rozhraní</a></li>
<li><a href="#cli-nástroj">CLI nástroj</a></li>
<li><a href="#webdav">WebDAV</a> endpoint pro správu souborů ve vašem lokálním správci souborů.</li>
<li><a href="#sftp">SFTP</a></li>
</ul>
<h4 id="webove-rozhrani">Webové rozhraní</h4>
<p>Soubory můžete nahrávat a spravovat přes webové rozhraní na adrese <code>https://[vaše-doména]/_admin</code>. Zde můžete také spravovat strukturu složek a jednotlivé soubory.</p>
<p><center>
<img src="/img/surfer-web-interface.png" class="shadow" width="500px">
</center></p>
<h4 id="cli-nastroj">CLI nástroj</h4>
<p>Pokud preferujete práci z příkazového řádku, můžete využít CLI nástroj pro Surfer. Nejprve ho nainstalujte pomocí npm:</p>
<div class="codehilite"><pre><span></span><code>npm<span class="w"> </span>-g<span class="w"> </span>install<span class="w"> </span>cloudron-surfer
</code></pre></div>
<p>Přihlaste se pomocí přístupového tokenu vytvořeného v administraci Surferu:</p>
<div class="codehilite"><pre><span></span><code>surfer<span class="w"> </span>config<span class="w"> </span>--server<span class="w"> </span>&lt;doména-aplikace&gt;<span class="w"> </span>--token
</code></pre></div>
<p>Nahrajte soubory:</p>
<div class="codehilite"><pre><span></span><code>surfer<span class="w"> </span>put<span class="w"> </span>index.html<span class="w"> </span>favicon.ico<span class="w"> </span>/
</code></pre></div>
<p>Nahrajte adresář (příkaz <code>/*</code> znamená, že obsah adresáře <code>build</code> bude zkopírován do kořenového adresáře Surferu):</p>
<div class="codehilite"><pre><span></span><code>surfer<span class="w"> </span>put<span class="w"> </span>build/*<span class="w"> </span>/
</code></pre></div>
<p>Získání nápovědy:</p>
<div class="codehilite"><pre><span></span><code>$<span class="w"> </span>surfer
Usage:<span class="w"> </span>surfer<span class="w"> </span><span class="o">[</span>options<span class="o">]</span><span class="w"> </span><span class="o">[</span>command<span class="o">]</span>
Options:
<span class="w"> </span>-V,<span class="w"> </span>--version<span class="w"> </span>output<span class="w"> </span>the<span class="w"> </span>version<span class="w"> </span>number
<span class="w"> </span>-h,<span class="w"> </span>--help<span class="w"> </span>display<span class="w"> </span><span class="nb">help</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nb">command</span>
Commands:
<span class="w"> </span>login<span class="w"> </span>Set<span class="w"> </span>default<span class="w"> </span>server
<span class="w"> </span><span class="nb">logout</span><span class="w"> </span>Unset<span class="w"> </span>default<span class="w"> </span>server
<span class="w"> </span>config<span class="p">|</span>configure<span class="w"> </span><span class="o">[</span>options<span class="o">]</span><span class="w"> </span>Configure<span class="w"> </span>default<span class="w"> </span>server
<span class="w"> </span>put<span class="w"> </span><span class="o">[</span>options<span class="o">]</span><span class="w"> </span>&lt;file<span class="p">|</span>dir...&gt;<span class="w"> </span>Uploads<span class="w"> </span>a<span class="w"> </span>list<span class="w"> </span>of<span class="w"> </span>files<span class="w"> </span>or<span class="w"> </span><span class="nb">dirs</span><span class="w"> </span>to<span class="w"> </span>the<span class="w"> </span>destination.<span class="w"> </span>The<span class="w"> </span>last<span class="w"> </span>argument<span class="w"> </span>is<span class="w"> </span>destination<span class="w"> </span>dir
<span class="w"> </span>get<span class="w"> </span><span class="o">[</span>options<span class="o">]</span><span class="w"> </span><span class="o">[</span>file<span class="p">|</span>dir<span class="o">]</span><span class="w"> </span>Get<span class="w"> </span>a<span class="w"> </span>file<span class="w"> </span>or<span class="w"> </span>directory<span class="w"> </span>listing
<span class="w"> </span>del<span class="w"> </span><span class="o">[</span>options<span class="o">]</span><span class="w"> </span>&lt;file&gt;<span class="w"> </span>Delete<span class="w"> </span>a<span class="w"> </span>file<span class="w"> </span>or<span class="w"> </span>directory
<span class="w"> </span><span class="nb">help</span><span class="w"> </span><span class="o">[</span>command<span class="o">]</span><span class="w"> </span>display<span class="w"> </span><span class="nb">help</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nb">command</span>
</code></pre></div>
<h3 id="webdav">WebDAV</h3>
<p><a href="https://en.wikipedia.org/wiki/WebDAV">WebDAV</a> je rozšíření HTTP protokolu, které umožňuje vzdálenou správu souborů. WebDAV sdílení můžete připojit pomocí vašeho správce souborů.</p>
<p>URI schémata se liší na běžných platformách.</p>
<table>
<thead>
<tr>
<th>Platform</th>
<th>URI</th>
</tr>
</thead>
<tbody>
<tr>
<td>Windows</td>
<td><code>https://[appdomain]/_webdav/</code></td>
</tr>
<tr>
<td>Mac</td>
<td><code>https://[appdomain]/_webdav/</code></td>
</tr>
<tr>
<td>Gnome</td>
<td><code>davs://[appdomain]/_webdav/</code></td>
</tr>
<tr>
<td>KDE</td>
<td><code>webdavs://[appdomain]/_webdav/</code></td>
</tr>
</tbody>
</table>
<p>!!! note "Přístup přes WebDAV" Pro přístup přes WebDAV použijte přístupový token vytvořený v administraci Surferu jako heslo.</p>
<p>Na Linuxu můžete použít knihovnu <a href="http://savannah.nongnu.org/projects/davfs2">Davfs2</a> pro lokální připojení sdílené složky:</p>
<div class="codehilite"><pre><span></span><code>mount<span class="w"> </span>-t<span class="w"> </span>davfs<span class="w"> </span>https://<span class="o">[</span>doména-aplikace<span class="o">]</span>/_webdav/<span class="w"> </span>/mnt/bod
</code></pre></div>
<h3 id="sftp">SFTP</h3>
<p>Soubory lze nahrávat pomocí SFTP klienta jako je <a href="https://filezilla-project.org/">FileZilla</a>. Podrobnosti o <a href="/apps/#sftp-access">SFTP přístupu</a> najdete v administraci aplikace.</p>
<p>!!! note "Přístup přes SFTP" Přístup přes SFTP pro uživatele bez administrátorských práv lze udělit prostřednictvím rozhraní pro správ</p>
<h3 id="ovladani-pristupu">Ovládání přístupu</h3>
<p>Přístup na stránky lze řídit prostřednictvím stránky Nastavení. K dispozici jsou tři možnosti:</p>
<ul>
<li>Veřejný přístup (pro všechny) kdokoli může web zobrazit.</li>
<li>Přístup omezený heslem kdokoli s heslem může web zobrazit.</li>
<li>Omezený přístup pro uživatele pouze uživatelé s přihlášením na OSCloud mohou web zobrazit.</li>
</ul>
<p><center>
<img src="/img/surfer-access-control.png" class="shadow" width="500px">
</center></p>
<h3 id="cicd-integrace">CI/CD integrace</h3>
<p>Můžete nastavit svůj CI/CD systém tak, aby automaticky nahrával statické soubory do aplikace Surfer pomocí CLI nástroje následujícím způsobem:</p>
<ul>
<li>
<p>Nejprve vytvořte Access Token v aplikaci Surfer z nabídky Nastavení.</p>
</li>
<li>
<p>Nainstalujte CLI nástroj Surfer jako součást CI/CD pipeline.</p>
</li>
<li>
<p>Nahrajte artefakty (v níže uvedeném příkladu složku dist/):</p>
</li>
</ul>
<div class="codehilite"><pre><span></span><code>surfer<span class="w"> </span>put<span class="w"> </span>--token<span class="w"> </span>api-7e6d90ff-5825-4ebe-a85b-a68795055955<span class="w"> </span>--server<span class="w"> </span>surfer.oscloud.cz<span class="w"> </span>dist/*<span class="w"> </span>/
</code></pre></div>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2024 Oscloud CZ
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://git.arch-linux.cz/Oscloud" target="_blank" rel="noopener" title="git.arch-linux.cz" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11m-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16m133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61M512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z"/></svg>
</a>
<a href="https://mamutovo.cz/@oscloud" target="_blank" rel="noopener me" title="mamutovo.cz" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg>
</a>
<a href="https://matrix.to/#/!nnrBXdWbSiXkfiYtWR:mxchat.cz?via=mxchat.cz" target="_blank" rel="noopener" title="matrix.to" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6-10.4-2-21.2-.6-30.7 4.2q-6.15 3.15-12.6 6c-16 7.2-32.9 13.5-49.9 18 2.8-4.6 5.4-9.1 7.9-13.6 1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0 0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3-.9 1.7-1.9 3.5-2.8 5.1-10.3 18.4-22.3 36.5-36.6 52.1-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7 4.8-2.2 9.6-4.5 14.2-6.8 15.1 3 30.9 4.5 47.1 4.5m224 128c16.2 0 31.9-1.6 47.1-4.5 4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5s2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1-.9-1.7-1.9-3.4-2.8-5.1 28.8-30.3 46-68.6 46-110.4 0-94.4-87.9-171.5-198.2-175.8 4.1 15.2 6.2 31.2 6.2 47.8v.6c87.2 6.7 144 67.5 144 127.4 0 28-11.4 54.9-32.7 77.2-14.3 15-17.3 37.6-7.5 55.8 1.1 2 2.2 4 3.2 5.9 2.5 4.5 5.2 9 7.9 13.6-17-4.5-33.9-10.7-49.9-18q-6.45-2.85-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2-12.1 2.4-24.8 3.6-37.8 3.6-61.7 0-110-26.5-136.8-62.3-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["search.suggest", "navigation.indexes"], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../assets/javascripts/bundle.525ec568.min.js"></script>
<script src="../../javascripts/extra.js"></script>
</body>
</html>