Spaces:
Build error
Build error
import gradio as gr | |
import subprocess | |
import os | |
def generate_secrets(domain): | |
# Set Mastodon directory | |
mastodon_dir = "/app/mastodon" | |
os.chdir(mastodon_dir) | |
# Generate secrets using Mastodon’s rake tasks | |
secret_key_base = subprocess.check_output( | |
["/root/.rbenv/shims/bundle", "exec", "rake", "secret"], | |
env={"RAILS_ENV": "development"} | |
).decode().strip() | |
otp_secret = subprocess.check_output( | |
["/root/.rbenv/shims/bundle", "exec", "rake", "secret"], | |
env={"RAILS_ENV": "development"} | |
).decode().strip() | |
vapid_keys = subprocess.check_output( | |
["/root/.rbenv/shims/bundle", "exec", "rake", "mastodon:webpush:generate_vapid_key"], | |
env={"RAILS_ENV": "development"} | |
).decode().strip().split("\n") | |
vapid_private_key = next(line.split("=", 1)[1].strip() for line in vapid_keys if "VAPID_PRIVATE_KEY" in line) | |
vapid_public_key = next(line.split("=", 1)[1].strip() for line in vapid_keys if "VAPID_PUBLIC_KEY" in line) | |
# Return formatted output | |
output = { | |
"LOCAL_DOMAIN": domain or "your-space-name.hf.space", | |
"SECRET_KEY_BASE": secret_key_base, | |
"OTP_SECRET": otp_secret, | |
"VAPID_PRIVATE_KEY": vapid_private_key, | |
"VAPID_PUBLIC_KEY": vapid_public_key, | |
"RAILS_SERVE_STATIC_FILES": "true" | |
} | |
return "\n".join(f"{k}: {v}" for k, v in output.items()) | |
# Gradio interface | |
with gr.Blocks(title="Mastodon Secrets Generator") as demo: | |
gr.Markdown("# Mastodon Secrets Generator") | |
gr.Markdown("Enter your domain (or leave blank for default) and generate secrets for your Mastodon Space.") | |
domain_input = gr.Textbox(label="Domain (optional)", placeholder="e.g., your-space-name.hf.space") | |
generate_btn = gr.Button("Generate Secrets") | |
output_text = gr.Textbox(label="Secrets (Copy/Paste these into Hugging Face Spaces Secrets)", lines=10) | |
generate_btn.click( | |
fn=generate_secrets, | |
inputs=domain_input, | |
outputs=output_text | |
) | |
demo.launch(server_name="0.0.0.0", server_port=7860) |