diff --git a/marimo/_server/export/exporter.py b/marimo/_server/export/exporter.py index ce180018435..21bde51a52a 100644 --- a/marimo/_server/export/exporter.py +++ b/marimo/_server/export/exporter.py @@ -735,6 +735,7 @@ def export_assets(self, directory: Path) -> None: if not dirpath.exists(): dirpath.mkdir(parents=True, exist_ok=True) + import os import shutil shutil.copytree( @@ -743,6 +744,12 @@ def export_assets(self, directory: Path) -> None: dirs_exist_ok=True, ignore=(shutil.ignore_patterns("index.html")), ) + # Ensure output is writable (source may be read-only, e.g. nix store) + for root, _dirs, files in os.walk(dirpath): + os.chmod(root, os.stat(root).st_mode | 0o755) + for f in files: + fp = os.path.join(root, f) + os.chmod(fp, os.stat(fp).st_mode | 0o644) def export_public_folder( self, directory: Path, marimo_file: MarimoPath