zimt28

zimt28

Hi there,

I just managed to deploy my first Phoenix app using edeliver. The only problem left are static files, which Phoenix doesn’t serve right now: When I try to access /css/app.css, I get Phoenix 404 page.

I’ve added the following to my .deliver/config file:


pre_erlang_clean_compile() {
    status "Running phoenix.digest" # log output prepended with "----->"
    __sync_remote " # runs the commands on the build host
      [ -f ~/.profile ] && source ~/.profile # load profile (optional)
      set -e # fail if any command fails (recommended)
      cd '$BUILD_AT' # enter the build directory on the build host (required)
      # prepare something
      mkdir -p priv/static # required by the phoenix.digest task
      # run your custom task
      APP='$APP' MIX_ENV='$TARGET_MIX_ENV' $MIX_CMD phoenix.digest $SILENCE
    "
  }

In my config/prod.exs file, I’ve got the following configuration:

# (PORT is "80" and URL is the server's IP)
config :app, App.Endpoint,
  http: [port: {:system, "PORT"}],
  url: [host: {:system, "URL"}, port: 80],
  cache_static_manifest: "priv/static/manifest.json"

config :app, App.Endpoint, root: "."

When I run mix phoenix.digest and MIX_ENV=prod mix release --prod locally, phoenix serves my static files though.

EDIT: On my build server, /tmp/edeliver/app/builds/priv only contains a manifest.json file, which again just consists of an empty object {}. The static files do exist inside of /tmp/edeliver/app/builds/web/static.

EDIT 2: I’ve changed the last line of my .deliver/config file to the following:

APP='$APP' MIX_ENV='$TARGET_MIX_ENV' $MIX_CMD phoenix.digest web/static -o priv/static $SILENCE

The mix phoenix.digest thing seems to work now, but I have to run brunch before somehow. How can I do that?

Showing Posts 1 to 1

zimt28

zimt28 OP

All right, looks like I found a working solution. Just in case someone has similar problem, here’s a .deliver/config file, that works for me:

#!/usr/bin/env bash

APP="app"

BUILD_HOST="123.45.67.8"
BUILD_USER="root"
BUILD_AT="/tmp/edeliver/app/builds"

STAGING_HOSTS="123.45.67.8"
STAGING_USER="root"
DELIVER_TO="/home/web"

pre_erlang_get_and_update_deps() {
  local _prod_secret_path="/home/builder/prod.secret.exs"
  if [ "$TARGET_MIX_ENV" = "prod" ]; then
    __sync_remote "
      ln -sfn '$_prod_secret_path' '$BUILD_AT/config/prod.secret.exs'
    "
  fi
}

pre_erlang_clean_compile() {
    status "Installing NPM dependencies"
    __sync_remote "  # runs the commands on the build host
      [ -f ~/.profile ] && source ~/.profile # load profile
      set -e # fail if any command fails

      cd '$BUILD_AT' # go to the build directory on the build host
      npm install $SILENCE
    "

    status "Building static files"
    __sync_remote "
      [ -f ~/.profile ]
      set -e

      cd '$BUILD_AT'
      mkdir -p priv/static
      npm run deploy $SILENCE
    "

    status "Running phoenix.digest"
    __sync_remote "
      [ -f ~/.profile ] && source ~/.profile
      set -e

      cd '$BUILD_AT'
      APP='$APP' MIX_ENV='$TARGET_MIX_ENV' $MIX_CMD phoenix.digest $SILENCE
    "
  }
— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews