docs: improvements to building and docs (#5234)
15
.github/workflows/site-pr.yml
vendored
@ -1,7 +1,10 @@
|
||||
name: Build Site Image
|
||||
name: Build Site
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'www'
|
||||
- '*.md'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@ -13,11 +16,5 @@ jobs:
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Build
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile.site
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: false
|
||||
|
||||
- name: Build site
|
||||
run: make site
|
||||
|
37
.github/workflows/site-publish.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: Build and Push Site Image
|
||||
name: Build and Deploy Site
|
||||
|
||||
on:
|
||||
push:
|
||||
@ -6,39 +6,6 @@ on:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile.site
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm64
|
||||
tags: |
|
||||
filebrowser/site:latest
|
||||
ghcr.io/filebrowser/site:latest
|
||||
|
||||
deploy:
|
||||
permissions:
|
||||
contents: read
|
||||
@ -61,5 +28,5 @@ jobs:
|
||||
with:
|
||||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||
command: pages deploy site/public/site --project-name=${{ secrets.CLOUDFLARE_PROJECT_NAME }}
|
||||
command: pages deploy www/public --project-name=${{ secrets.CLOUDFLARE_PROJECT_NAME }}
|
||||
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
1
.gitignore
vendored
@ -42,4 +42,3 @@ build/
|
||||
|
||||
default.nix
|
||||
Dockerfile.dev
|
||||
site/public/
|
@ -1,6 +1,6 @@
|
||||
# Contributing
|
||||
|
||||
If you're interested in contributing to this project, this is the best place to start. Before contributing to this project, please take a bit of time to read our [Code of Conduct](code-of-conduct.md). Also, note that this project is open-source and licensed under [Apache License 2.0](../LICENSE).
|
||||
If you're interested in contributing to this project, this is the best place to start. Before contributing to this project, please take a bit of time to read our [Code of Conduct](code-of-conduct.md). Also, note that this project is open-source and licensed under [Apache License 2.0](LICENSE).
|
||||
|
||||
## Project Structure
|
||||
|
@ -1,22 +0,0 @@
|
||||
FROM squidfunk/mkdocs-material as build
|
||||
|
||||
WORKDIR /build
|
||||
COPY site/requirements.txt /build/requirements.txt
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
COPY LICENSE /build/docs/LICENSE
|
||||
|
||||
COPY site/ /build/
|
||||
|
||||
COPY docs/ /build/docs/docs
|
||||
COPY README.md /build/docs/index.md
|
||||
|
||||
RUN mkdocs build
|
||||
|
||||
|
||||
FROM ghcr.io/umputun/reproxy
|
||||
# enables automatic changelog generation by tools like Dependabot
|
||||
LABEL org.opencontainers.image.source="https://github.com/filebrowser/filebrowser"
|
||||
COPY --from=build /build/site /srv/site
|
||||
EXPOSE 8080
|
||||
USER app
|
||||
ENTRYPOINT ["/srv/reproxy", "--assets.location=/srv/site", "--assets.cache=30d", "--assets.cache=text/html:30s"]
|
@ -1,15 +0,0 @@
|
||||
FROM squidfunk/mkdocs-material
|
||||
|
||||
# Install inotify-tools for watching file changes
|
||||
RUN apk add --no-cache inotify-tools
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
COPY site/ /build/
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# Expose the port for mkdocs serve
|
||||
EXPOSE 8000
|
||||
|
||||
# The entrypoint will run the initial setup and then start the server.
|
||||
ENTRYPOINT ["mkdocs", "serve", "-a", "0.0.0.0:8000", "--dirtyreload"]
|
27
Makefile
@ -55,18 +55,27 @@ bump-version: $(standard-version) ## Bump app version
|
||||
|
||||
.PHONY: site
|
||||
site: ## Build site
|
||||
@rm -rf site/public/site*
|
||||
@docker rm -f spot-site
|
||||
docker build -f Dockerfile.site --progress=plain -t filebrowser.site .
|
||||
docker run -d --name=filebrowser-site filebrowser.site
|
||||
sleep 3
|
||||
docker cp "filebrowser-site":/srv/site/ site/public
|
||||
docker rm -f filebrowser-site
|
||||
@rm -rf www/public
|
||||
docker build -f www/Dockerfile --progress=plain -t filebrowser.site www
|
||||
docker run --rm -v $(CURDIR)/www:/docs \
|
||||
-v $(CURDIR)/LICENSE:/docs/docs/LICENSE \
|
||||
-v $(CURDIR)/SECURITY.md:/docs/docs/security.md \
|
||||
-v $(CURDIR)/CHANGELOG.md:/docs/docs/changelog.md \
|
||||
-v $(CURDIR)/CODE-OF-CONDUCT.md:/docs/docs/code-of-conduct.md \
|
||||
-v $(CURDIR)/CONTRIBUTING.md:/docs/docs/contributing.md \
|
||||
filebrowser.site build -d "public"
|
||||
|
||||
.PHONY: site-serve
|
||||
site-serve: ## Serve site for development
|
||||
docker build -f Dockerfile.site.dev -t filebrowser.site.dev .
|
||||
docker run --rm -it -p 8000:8000 -v $(CURDIR)/docs:/build/docs/docs -v $(CURDIR)/README.md:/build/docs/index.md filebrowser.site.dev
|
||||
docker build -f www/Dockerfile --progress=plain -t filebrowser.site www
|
||||
docker run --rm -it -p 8000:8000 \
|
||||
-v $(CURDIR)/www:/docs \
|
||||
-v $(CURDIR)/LICENSE:/docs/docs/LICENSE \
|
||||
-v $(CURDIR)/SECURITY.md:/docs/docs/security.md \
|
||||
-v $(CURDIR)/CHANGELOG.md:/docs/docs/changelog.md \
|
||||
-v $(CURDIR)/CODE-OF-CONDUCT.md:/docs/docs/code-of-conduct.md \
|
||||
-v $(CURDIR)/CONTRIBUTING.md:/docs/docs/contributing.md \
|
||||
filebrowser.site
|
||||
|
||||
## Help:
|
||||
help: ## Show this help
|
||||
|
44
README.md
@ -1,17 +1,20 @@
|
||||
#
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/filebrowser/logo/master/banner.png" width="550"/>
|
||||
</p>
|
||||
|
||||

|
||||
|
||||
[](https://github.com/filebrowser/filebrowser/actions/workflows/main.yaml)
|
||||
[](https://goreportcard.com/report/github.com/filebrowser/filebrowser)
|
||||
[](http://godoc.org/github.com/filebrowser/filebrowser)
|
||||
[](https://github.com/filebrowser/filebrowser/releases/latest)
|
||||
[](http://webchat.freenode.net/?channels=%23filebrowser)
|
||||
[](https://goreportcard.com/report/github.com/filebrowser/filebrowser)
|
||||
[](http://godoc.org/github.com/filebrowser/filebrowser)
|
||||
[](https://github.com/filebrowser/filebrowser/releases/latest)
|
||||
[](http://webchat.freenode.net/?channels=%23filebrowser)
|
||||
|
||||
filebrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files. It allows the creation of multiple users and each user can have its own directory. It can be used as a standalone app.
|
||||
File Browser provides a file managing interface within a specified directory and it can be used to upload, delete, preview and edit your files. It is a **create-your-own-cloud**-kind of software where you can just install it on your server, direct it to a path and access your files through a nice web interface.
|
||||
|
||||
## Documentation
|
||||
|
||||
Documentation on how to install, configure, and contribute to this project is hosted at [filebrowser.org](https://filebrowser.org).
|
||||
|
||||
## Project Status
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
@ -25,28 +28,3 @@ filebrowser provides a file managing interface within a specified directory and
|
||||
|
||||
[issues]: https://github.com/filebrowser/filebrowser/issues
|
||||
[discussions]: https://github.com/filebrowser/filebrowser/discussions
|
||||
|
||||
## Features
|
||||
|
||||
File Browser is a **create-your-own-cloud-kind** of software where you can install it on a server, direct it to a path and then access your files through a nice web interface. You have many available features!
|
||||
|
||||
| Easy Login System | Sleek Interface | User Management |
|
||||
| :----------------------: | :----------------------: | :----------------------: |
|
||||
|  |  |  |
|
||||
|
||||
|
||||
| File Editing | Custom Commands | Customization |
|
||||
| :----------------------: | :----------------------: | :----------------------: |
|
||||
|  |  |  |
|
||||
|
||||
## Install
|
||||
|
||||
For information on how to install File Browser, please check [installation](docs/installation.md).
|
||||
|
||||
## Configuration
|
||||
|
||||
For information on how to configure File Browser, please check [configuration](docs/configuration.md).
|
||||
|
||||
## Contributing
|
||||
|
||||
For information on how to contribute to the project, including how translations are managed, please check [contributing](docs/contributing.md).
|
||||
|
@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Initial setup
|
||||
cp /tmp/README.md /build/docs/index.md
|
||||
sed -i 's|site/docs/||g' /build/docs/index.md
|
||||
|
||||
# Start mkdocs in the background
|
||||
mkdocs serve -a 0.0.0.0:8000 --dirtyreload &
|
||||
|
||||
# Watch for changes in README.md
|
||||
while true; do
|
||||
inotifywait -e modify /tmp/README.md
|
||||
echo "README.md changed. Updating index.md..."
|
||||
cp /tmp/README.md /build/docs/index.md
|
||||
sed -i 's|site/docs/||g' /build/docs/index.md
|
||||
done
|
||||
|
6
www/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
docs/LICENSE
|
||||
docs/code-of-conduct.md
|
||||
docs/contributing.md
|
||||
docs/security.md
|
||||
docs/changelog.md
|
||||
public
|
4
www/Dockerfile
Normal file
@ -0,0 +1,4 @@
|
||||
FROM squidfunk/mkdocs-material
|
||||
|
||||
COPY requirements.txt requirements.txt
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
@ -10,7 +10,7 @@ You are able to customize your File Browser installation by changing its name to
|
||||
* **Disable external links:** this will disable any external links (except the ones to this documentation).
|
||||
* **Folder:** is the path to a directory that can contain two items:
|
||||
* **custom.css**, containing the styles you want to apply to your installation.
|
||||
* **img** a directory whose files can replace the [default logotypes](../frontend/public/img) in the application.
|
||||
* **img** a directory whose files can replace the [default logotypes](https://github.com/filebrowser/filebrowser/tree/master/frontend/public/img) in the application.
|
||||
|
||||
These options can be either set via the CLI interface using the following command:
|
||||
|
59
www/docs/index.md
Normal file
@ -0,0 +1,59 @@
|
||||
<style>
|
||||
.md-content .md-typeset h1 {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/filebrowser/logo/master/banner.png" width="550"/>
|
||||
</p>
|
||||
|
||||

|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> This project is currently on **maintenance-only** mode. For more information, read the information on [GitHub](https://github.com/filebrowser/filebrowser#project-status).
|
||||
|
||||
File Browser provides a file managing interface within a specified directory and it can be used to upload, delete, preview and edit your files. It is a **create-your-own-cloud**-kind of software where you can just install it on your server, direct it to a path and access your files through a nice web interface.
|
||||
|
||||
## Features
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- **Easy Login System**
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
- **Sleek Interface**
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
- **User Management**
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
- **File Editing**
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
- **Custom Commands**
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
- **Customization**
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
</div>
|
0
docs/assets/1.jpg → www/docs/static/1.jpg
vendored
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
0
docs/assets/2.jpg → www/docs/static/2.jpg
vendored
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
0
docs/assets/3.jpg → www/docs/static/3.jpg
vendored
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
0
docs/assets/4.jpg → www/docs/static/4.jpg
vendored
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 212 KiB |
0
docs/assets/5.jpg → www/docs/static/5.jpg
vendored
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
0
docs/assets/6.jpg → www/docs/static/6.jpg
vendored
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
BIN
www/docs/static/example.gif
vendored
Normal file
After Width: | Height: | Size: 477 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
@ -1,31 +1,30 @@
|
||||
site_name: Filebrowser
|
||||
site_name: File Browser
|
||||
site_description: 'A web-based file browser and manager for your files'
|
||||
site_author: 'Filebrowser Community'
|
||||
site_author: 'File Browser Community'
|
||||
site_url: 'https://filebrowser.org'
|
||||
|
||||
repo_name: 'filebrowser/filebrowser'
|
||||
repo_url: 'https://github.com/filebrowser/filebrowser'
|
||||
edit_uri: 'edit/master/docs/'
|
||||
|
||||
copyright: 'Copyright © 2025 Filebrowser Community'
|
||||
copyright: 'Copyright © 2025 File Browser Community'
|
||||
|
||||
theme:
|
||||
name: material
|
||||
language: en
|
||||
logo: docs/assets/logo.png
|
||||
favicon: docs/assets/favicon.png
|
||||
logo: static/logo.png
|
||||
favicon: static/favicon.png
|
||||
palette:
|
||||
- scheme: default
|
||||
primary: blue
|
||||
accent: light blue
|
||||
toggle:
|
||||
icon: material/brightness-7
|
||||
icon: material/lightbulb
|
||||
name: Switch to dark mode
|
||||
- scheme: slate
|
||||
primary: blue
|
||||
accent: light blue
|
||||
toggle:
|
||||
icon: material/brightness-4
|
||||
icon: material/lightbulb-outline
|
||||
name: Switch to light mode
|
||||
|
||||
font:
|
||||
@ -71,15 +70,7 @@ markdown_extensions:
|
||||
- md_in_html
|
||||
- toc:
|
||||
permalink: true
|
||||
- pymdownx.arithmatex:
|
||||
generic: true
|
||||
- pymdownx.betterem:
|
||||
smart_enable: all
|
||||
- pymdownx.caret
|
||||
- pymdownx.details
|
||||
- pymdownx.emoji:
|
||||
emoji_index: !!python/name:material.extensions.emoji.twemoji
|
||||
emoji_generator: !!python/name:material.extensions.emoji.to_svg
|
||||
- pymdownx.highlight:
|
||||
anchor_linenums: true
|
||||
use_pygments: true
|
||||
@ -87,11 +78,7 @@ markdown_extensions:
|
||||
- pymdownx.keys
|
||||
- pymdownx.mark
|
||||
- pymdownx.smartsymbols
|
||||
- pymdownx.superfences:
|
||||
custom_fences:
|
||||
- name: mermaid
|
||||
class: mermaid
|
||||
format: !!python/name:pymdownx.superfences.fence_code_format
|
||||
- pymdownx.superfences
|
||||
- pymdownx.tabbed:
|
||||
alternate_style: true
|
||||
- pymdownx.tasklist:
|
||||
@ -110,10 +97,10 @@ extra:
|
||||
|
||||
nav:
|
||||
- Home: index.md
|
||||
- Getting Started:
|
||||
- Installation: docs/installation.md
|
||||
- Configuration: docs/configuration.md
|
||||
- Security: docs/security.md
|
||||
- Installation: installation.md
|
||||
- Configuration: configuration.md
|
||||
- Contributing:
|
||||
- Contributing: docs/contributing.md
|
||||
- Code of Conduct: docs/code-of-conduct.md
|
||||
- Contributing: contributing.md
|
||||
- Code of Conduct: code-of-conduct.md
|
||||
- Security Policy: security.md
|
||||
- Changelog: changelog.md
|