All posts by Elliott

Elliott lives on a tidal river in coastal Georgia, loves to fly, writes a bit, works in healthcare for the federal government, and is system administrator for the swiftpassage webs.

Nextcloud-AIO: Extended Storage Via NFS

On Same LAN Using An External USB Drive

A major stumbling block in perfecting our Nextcloud AIO instance was attaching a read-only archive of media by LAN from an adjoining Plex server we run at home. It took several tries to get it attached and working as desired. These notes may be helpful if you are attempting something similar.

We started from having Nextcloud-AIO up and running on an ubuntu-based virtual machine created in ProxMox. Our prior instance of Nextcloud ran on a bare-metal ubuntu server with all storage attached internally or externally by usb to the system, so using a network share into nextcloud-aio was doubly unfamiliar.

The plex server runs on the same local subnet on a bare-metal ubuntu instance. Here are the steps that got the share working:

First, install and configure nfs server on the plex system:

sudo apt update
sudo apt install nfs-kernel-server

Verify it’s running:

sudo systemctl status nfs-server

Configure a shared directory:

sudo mkdir -p /mnt/nfs_plex_share

In my instance, this directory is not where the plex media is actually stored. This new directory will be bound to the external usb drive where the media is maintained in a later step. (For now it’s just an empty folder.)

Configure nfs exports: sudo nano /etc/exports …And add the line below adjusting the ip address for your own subnet:

/mnt/nfs_plex_media 192.168.0.0/24(rw,sync,no_subtree_check,no_root_squash,crossmnt)

Some notes on the above:
The ip address in my case grants the entire subnet access to the nfs share on the plex server. You could limit it to the nextcloud host alone if you want to.

And this was important to learn: If, like me, your media files are to be linked to /mnt/nfs_plex_share by using mount – -bind , you must include the “crossmnt” parameter, else the files probably won’t be readable.

The “no-root-squash” parameter allows the client’s root user to have root privileges on the nfs share.

One more thing: do use “rw” here. You will likely be adjusting ownership and permissions later on. You will ultimately control read-only access to the archive in nextcloud as you configure External Storage there.

Load this configuration into the nfs server with :

sudo exportfs -ra
…Then restart the nfs-server:

sudo systemctl restart nfs-server

Now here’s the step where we bind the plex media files to /mnt/nfs_plex_share :

If your external drive is mounted in /etc/fstab as, say, /media/plex-drive you can bind the archive to /mnt/nfs_plex_share with this:

sudo mount – -bind /media/plex-drive /mnt/nfs_plex_share

Now you should be able to see the archive files in /mnt/nfs_plex_share , and modify them there just as permitted at /media/plex-drive.

To make the mount persistent after a reboot, add this to /etc/fstab:

/media/plex-drive /mnt/nfs_plex_share none bind 0 0

Be certain the above line appears below the entry which mounts /media/plex-drive , else your system might not boot up correctly!

This would be a good time to be sure of the user:group and permissions in your plex archive. Nextcloud-aio wants the archive contents belonging to www-data:www-data These work for me, and have not disturbed the workings of the plex server. Do:

sudo chown -R www-data:www-data /mnt/nfs_plex_share

Then:

sudo chmod -R 755 (or 750) /mnt/nfs_plex_share

The above can take quite a while for a large archive. Be patient.

Now we go set up what’s needed on the nextcloud-aio machine:

Begin with installing the nfs client:

sudo apt install nfs-common

Then make a mount point for the external nfs share you will be mounting:

sudo mkdir -p /mnt/plex-archive

Now, mount the nfs share manually: Use your own plex server LAN ip address:

sudo mount 192.168.0.101:/mnt/nfs_plex_share /mnt/plex-archive

You can verify the mount worked with:

mount | grep nfs

Make the mount permanent:

sudo nano /etc/fstab …and add this line:

192.168.0.101:mnt/nfs_plex_share /mnt/plex-archive nfs auto,nofail

Test this with:

sudo mount -a

Then check that your mount point is working.

Ok.

Lastly, we need to configure a mount point within nextcloud-aio for /mnt/plex-archive before we go to set up External Storage in the nextcloud web interface.

It would be wise to shutdown nextcloud-aio for the next steps. I built nextcloud-aio using docker compose, so I used:

sudo docker compose stop

This also works, and is recommended:

sudo docker exec -it nextcloud-aio-mastercontainer sudo -u www-data php /var/www/docker-aio/php/src/Cron/StopContainers.php

If you use Portainer, you can easily and gracefully monitor and stop all the containers that way. Depending on how you built your nextcloud-aio, you might need to use Portainer or this next command to finally stop the nextcloud mastercontainer:

sudo docker stop nextcloud-aio-mastercontainer

Once stopped, you need to add the NEXTCLOUD_MOUNT parameter to you nextcloud-aio environment. For me, that meant doing something like this in the environment section of my compose.yaml file:

NEXTCLOUD_MOUNT: /mnt/plex-archive

Start nextcloud-aio back up again:

sudo docker compose up

Finally, log in to your nextcloud admin account, and go to Administration Settings/Administration/External Storage. Create an external storage thus:

Folder name: can be anything.
External Storage: choose Local
Authentication: None
Configuration: /mnt/plex-archive
Available For: select groups or individuals. Do include “admin”, else you won’t find it for yourself!
Click the three dots, and I strongly recommend Read Only to protect your archive. Enable Previews can take a long time to process. Click the check mark, and you should see a pale green check at the start of the line indicating it’s worked.

Before your data can be found or browsed, you must do a file scan, thus:

sudo docker exec –user www-data -it nextcloud-aio-nextcloud php occ files:scan –all
One other note about the External Storage in the Administration section: The choice to select a “Local” storage doesn’t appear until you’ve added the NEXTCLOUD_MOUNT environment variable. Then it shows up!

That’s pretty much it. If you find any faults or errors in these notes, please leave a comment, and I’ll try to fix it in an update. Best of luck!






















Smith’s Testimony

It’s been just over 24 hours since the second murder by ICE/CBP, and the rage I am feeling is immeasurable. But… beneath that anger there is a stillness of focus that forces me to recall what these horrendous events have distracted us from: Jack Smith’s testimony to Congress last Wednesday.

Smith plainly stated his certainty of Donald Trump’s guilt beyond a reasonable doubt of serious felony crimes. Crimes both in the matter of stealing and mishandling secret documents, and the attacks on the Capitol to steal the 2020 election for himself.

Hear for yourself:

(Click here to play: 0:41 seconds)

Smith is a dedicated, experienced, professional prosecutor. He is purely apolitical. He says laws were broken with proof sufficient to take into federal court. The People deserved to see that trial and its outcome. That was denied us. Instead, the law was derailed and perverted time and again by partisan judges, low and high. Justice delayed is justice denied, they say.

Political faction now has displaced the law. At the moment, we are a nation of men, not laws.

The murders of Alex Pretti and Renee Good are the responsibility of the people who set in motion the lawless invasion of Minnesota. And the complicit lawmakers in Congress who have nothing to say against it. And too, the individual masked thugs who are attacking ordinary people for observing and protesting the presence of these barbarians.

If you, like me, crave the return of some measure of law and justice it will take free elections. The defense of those elections will be no small task: You will see them under attack. I fear the tactics this White House might employ. The defense of those elections will require peaceful protest and political action. It may require a willingness to stay home from work; a general strike. It may require boycotts and other economic forms of protest. It will definitely mean forming and strengthening communities of resistance; offering support to your neighbors; looking out for one another.

If you can, talk about defending rights and freedom with everyone you know, right or left. There are countless supporters of Trump who are feeling doubts now. Be respectful, and try to find common cause. We all deserve freedoms of speech, assembly, self-defense, and defense of our communities, and our individual states. This senile, lame duck, lying, felon president and his monstrous cronies can and should be resisted. Offer your resistance, and support those who stand with you.

Practice self care. Be safe.

Don’t Say That Name

It’s been a mighty long time since I’ve set pen to paper, fingers to keys, to set my thoughts down for others. Since the last time I posted, the jarring horror of the nation’s slide into fascism has been mostly unchecked, and my thoughts spoken aloud or kept private have had no impact.

The silence of the Republican congress is its own separate shame. There are better voices than mine reporting on these times. My own silence since last April isn’t born of defeat, but more from battle fatigue.

I just won’t write his name anymore. I avoid speaking it. Like saying “Voldemort” or “BeetleJuice”, it only animates the monster further, inviting him in. The stench of him floats like a fog in our minds.

His image, and those of his henchmen, cadre, and anonymous followers are caricatures without satirists having to lend a stroke of separate artistry. They are effortlessly ridiculous and terrifying at once.

To my credit, I have taken my resistance to the street and done my share of shouting and marching there. It’s a stronger antidote to these poisonous times than social media. They’re just the lazy modern equivalent of the “free speech zones” that appeared with the second Bush administration.

Let’s continue to meet and air our grievances in the city centers, at major intersections, and on highway bridges so that his dwindling ranks can see how hated these policies are. I’ll be there with you. At home, I will make my own peace, and will monitor the times, but I won’t speak his name.

The Moaning Lisa

It crossed my attention today that Republican Senator Lisa Murkowski was looking a bit dewey-eyed at a town hall with her Alaskan constituents, saying, “We are all afraid”. She also expressed concern for possible retaliations from her party and the administration for not toeing the line on the issues of the dismantling of Social Security, and other essential services targeted by Musk and the DOGE-bags.

Well, I have news for her. Fear doesn’t cut it. Fear is what Trump and his flying monkeys want us to feel. Let me suggest some alternatives: How about some determination? A bit of steely-eyed grit to moderate and modulate the cold rage simmering within us?

Because these assaults on our neighbors, our homes, our democratic way of life; on the safety and security of our nation; these offenses against law, institutions, and the balance and peace they have made for us thus far… these CRIMES cannot be allowed to continue.

So we have reached the crisis: I, for one, am only surprised at how quickly it’s arrived.

We see the Chief Executive, when not selling his office away to an unelected billionaire, then ruling by scores of orders, most of which fly in the face of law, tradition, and common sense. Many of them contradicting previous thoughtless choices.

We see this convicted felon, rapist, and fraud crashing the markets and the world economy, and triggering massive inflation at home, while placing the burden of government costs on the middle class, and sparing his billionaire cronies several trillions more in tax breaks.

We hear him plotting to extend the kidnapping and rendition of common people to a foreign dictator’s gulag, not just those on student visas, or awaiting migration hearings, but to include those with legal residency, and birthright citizenship, and, no doubt, eventually to perhaps all who would resist the rise of the new totalitarian United States.

Our bright and shining Kakistocracy.

Our gleaming Oligarchy.

Our brilliant Kleptocracy.

So, Lisa Murkowski, please quell your fears, and find your nerve, and resolve to do the necessary work to form a coalition in Congress to thwart this gang of thugs, and return the nation to some semblance of balance.

kak·i·sto·cra·cy

/kakəˈstäkrəsē/

  1. government by the least suitable or competent citizens of a state.

ol·i·gar·chy

/ˈäləˌɡärkē/

  1. a small group of people having control of a country, organization, or institution.

klep·toc·ra·cy

/ˌklepˈtäkrəsē/

  1. a society or system ruled by people who use their power to steal their country’s resources.

We live in terrifying times…

A majority of all the voters did NOT VOTE FOR Donald Trump last November.

Keep that in mind.

True, more voted for him than Kamala Harris. He was re-elected. But the majority of voters, nationwide, would have preferred someone else back in November.

Here it is, today: The Ides of March. A date that symbolizes political chaos perhaps more than any other.

Our nation has been plunged into political, economic and social chaos because lies are promoted more aggressively than the truth, and those lies are calculated to extend personal power and wealth to the greediest and most cynical ones among us.

Trump celebrates greed, cynicism, and aggression: It defines for him the meritorious. His meritocracy makes room for liars and criminals, fraudsters and murderers.

Our legal and political institutions flail, and fail to defend the nation from them.

Trump’s supporters have no interest in a fair or inclusive America. They would re-write our Constitution to limit its protections to Whites over other races; to Fundamentalist Christians over other faiths; to the Cis-gendered over all others; to Men over women; and to the Ultra Wealthy first and foremost.

If you are MAGA and have believed Trump’s lie of “America First”, I’d point out that Trump has offered to sell citizenship to the highest bidders. He has clearly “sold the presidency” to the wealthiest man in the world, Elon Musk, who, himself, broke immigration law to get started in this land.

We are slouching into a period of history that will be dominated by such thugs, and the protection of the law will be apportioned to the privileged. The party of Trump wants to be the ONE AND ONLY PARTY. Just as there is only one party in China, in Korea, in Russia… And, should this come to pass here, if you are not a member of The Party, don’t expect to enjoy free speech, the protection of the law, the right to assemble, the freedom to travel, or to be yourself, as you see yourself. The State of Trump is neigh.

Be very afraid?

NO. BE VERY ANGRY. AND PURPOSEFUL. ASSERT YOUR TRUTH. LOUDLY. AND PERSISTENTLY. TO ALL WHO WILL LISTEN. AND ENCOURAGE THEM TO DO LIKEWISE. NOW IS THE TIME.

AMERICA IS THE PLACE.

DEFEND HER!

March 15, 2025

Don’t be fooled: Trumpism is fascism

In a mid-October interview on Fox News Trump said, “We have two enemies—we have the outside enemy, and then we have the enemy from within. And the enemy from within, in my opinion, is more dangerous than China, Russia, and all these countries.”

He was referring to the nebulous “Deep State”, which in MAGA-speak means anyone and everyone who stands in the way of Trumpism. The cult of Trump, in turn, doesn’t really stand for anything beyond a United States dominated by a single party which favors Trump and his cronies; ultra-wealthy, hyper-conservative, mostly christian, nationalist, and the chauvinistic.

To be considered for his cabinet, you must be a loyalist willing to dismember and dismantle whatever Project 2025 says. Also, a history of sexual abuse, trafficking, drug use, public drunkenness, and a Trump pardon for fraud appear to be a plus.

Additionally, the “big tent” of MAGA-ism has found it useful to include wingnut branches of climate change denial, anti-vax, anti-flouride, anti-pasteurization, and many other anti-science factions. Don’t get me started on Q-Anon.

Trump, as with all demagogues, thrives on fear-driven politics. “They’re eating the cats!” They weren’t eating the cats, dogs, or geese. And to whatever extent the nation was concerned about immigration, Trump clearly didn’t support the bipartisan bill targeting that problem. He used his influence to block it.

Because fear of those immigrants won the election for him.

And because there’s nothing bipartisan about Trumpism.

That this amazing nation built by immigrants could be manipulated to fear them… The irony !

You know where else you could study a nation run by one party? In the 20th century, fascist Germany and Italy, soviet Russia, the Peoples Republic of China , and North Korea. And now in the 21st, Putin’s Russia, the PRC, and North Korea. (Yes, there are others, like Turkmenistan, and a growing list of flailing illiberal democracies.)

But I wanted to underscore what it took to retrieve Germany from totalitarianism.

Hitler was a demagogue cultist, who garnered power by targeting “the enemy within”, whose main project was national “purity”, and the “internal deportation” of “undesirables”.

Sound familiar? 15 to 20 million lives were lost removing fascism from Germany.

And make no mistake: Trumpism is fascism, plain and simple.

Inclusion is freedom writ large:

If you truly want freedom, defend others from losing theirs.

The project of the new administration is to reestablish a status quo that existed here from the 17th century through the latter 20th century; a nation with white male heterosexual domination, and socioeconomic stratification locking people into immutable roles, lifelong. Our lives have spanned a period which challenged those constraints, and freed so many marginalized lives, fulfilling dreams long repressed.

If we can’t dismantle the orange machine, we can, at least, throw as much sand in its gears as possible.

Never give up.

So, this is novel!

If you woke up yesterday expecting to vote for Donald J. Trump, wow… you have got a serious reality check to consider: Your candidate, as of 5:15pm yesterday afternoon, is a convicted felon.

If you are one of those Americans, please ask yourself this: If you ran a small business, …say you owned a coffee shop, or a hardware store…, would you hire a new assistant manager after learning he had 34 felony counts on his record?

Ok. Maybe you’re a forgiving type or an optimist. What if he also had a civil judgement and was paying damages to the victim of his sexual assault?

In addition, what if a number of his previous businesses were judged to have committed massive business, tax, and lending fraud? And were now paying penalties, or prohibited from engaging in those businesses?

Oh… this was mostly in New York State, and that makes a difference to you? It really shouldn’t, but let’s allow it anyway.

What if he was pending trial in Georgia for election fraud? And was a conspiring person of interest in another case in Arizona? Or are those states too “purple” to count for you?

Or maybe your shoe store just really needs that assistant manager desperately?

How about two other pending prosecutions? These could land our feisty job applicant in federal penitentiary! One is for stealing and concealing federal property, and top secret documents at that? The other is about fomenting a riot to pervert constitutional democracy, and hang on to the office he’d lost in that election?

I mean what if this guy had hidden plans to steal your secret recipe for french vanilla, and then take over your ice cream stand altogether?

Or is all of this just too silly for you to take seriously?

But, would you hire this guy? To balance your checkbook? To represent your personal interests? To drive your wife to the airport? To watch your kids while you’re away?

Seriously?

It’s Personal…

In 2020 I had resided in McIntosh County Georgia for 18 years. I voted for Joe Biden in the election there that November. I felt considerable pride for my adopted state as that election count was finished. The Democratic Party succeeded in seating two new Senators, and won 16 electoral votes for Joe Biden and Kamala Harris. Democracy is exhilarating when you earn a positive outcome honestly.

On January 2nd, 2021, out-going Trump placed an hour-long phone call to the Georgia Secretary of State Brad Raffensperger, in which he pressured the Secretary to “find 11,780 votes” to overturn the election.

This wasn’t Trump’s first phone call pressuring the Secretary’s office. On December 23, 2020, Trump called the chief investigator at the secretary’s office, who was then conducting a ballot audit. Raffensperger had ordered the audit in response to Trump’s allegations of fraud. Trump asked her to scrutinize the ballots and said she would find “dishonesty”. She didn’t. No significant fraud was found.

Four years have passed.

Trump is now indicted under both federal law and in the state of Georgia for his criminal attempt to defraud voters and steal the 2020 election. And it wasn’t only those two phone calls, but the fraud involved a coordinated effort by numerous individuals to present and count false electoral ballots from seven different states.

The conspiracy’s success hinged on fomenting utter chaos at the Capitol. Trump’s surrogates summoned armed and violent right wing posses. They moved according to a plan under the cover of the other demonstrators. Capitol policemen defending the building suffered serious injuries. Some died. One civilian was shot dead.

Slates of false electoral ballots were created in Arizona, Georgia, Michigan, Nevada, New Mexico, Pennsylvania and Wisconsin. Republican party workers labored to put those fraudulent ballots on the floor of the House on January 6th, where they hoped the pressure of the rioting mob might force their acceptance.

And the plan almost succeeded. The House and Senate chambers were evacuated. Tear gas was discharged in the Rotunda. Windows and doors, interior and exterior, were shattered. The counting of electoral ballots could not take place.

The certification of my chosen candidate was delayed until late that evening, after the rioters withdrew, the building had been cleared and deemed secure, and the legislators and Vice President Pence had returned.

Chaos didn’t succeed that day. But chaos hasn’t given up. Trump recently said that there would be “bedlam” here if he was not re-elected. It’s pretty clear to me and others that’s a call to his violent supporters to engage in armed insurrection again on his behalf.

If you are uncomfortable with the idea of living with ongoing chaos and division, if you’d prefer living with peace and the order of law, then you shouldn’t support Trump, or any faction that supports him.

They tried to steal my vote. It’s personal…

Forgiveness

If you’d welcome my forgiveness
as I could welcome yours
We might sit down some afternoon
to tea and petit fours.

As I ask you for forgiveness
what I hope you’ll realize
Is my asking for forgiveness
doesn’t constitute a prize.

Should you offer me forgiveness
but not accepting mine
I’d feel fully entitled
to believe you out of line.

When I offer my forgiveness
what I’m offering to share
Is the peace which that forgiveness
has brought me in a prayer.

You should know that your forgiveness
is your antidote to pain
As my forgiving you the while
has worked for me the same.

If you’d welcome my forgiveness
as I could welcome yours
We might sit down some afternoon
to tea and petit fours.

January 2024, Charlotte, NC